Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python model.compile()在除';准确度';米制的_Python_Tensorflow_Keras - Fatal编程技术网

Python model.compile()在除';准确度';米制的

Python model.compile()在除';准确度';米制的,python,tensorflow,keras,Python,Tensorflow,Keras,我正在编写一个简单的MLP,并编写了以下代码: from keras.models import Sequential from keras.layers import Dense from keras import Input def get_stats_model(): model = Sequential() model.add(Dense(12, input_dim=8, activation='relu')) model.add(Dense(8, activ

我正在编写一个简单的MLP,并编写了以下代码:

from keras.models import Sequential
from keras.layers import Dense
from keras import Input

def get_stats_model():

    model = Sequential()
    model.add(Dense(12, input_dim=8, activation='relu'))
    model.add(Dense(8, activation='relu'))
    model.add(Dense(1, activation='sigmoid'))
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
    
    return model
main.py
中:

get_stats_model()
Wich可以完美地工作,只要度量标准仅为
“准确性”
。当同时使用
'accurity'
'AUC'
进行尝试时,只需使用
'AUC'
'mean_absolute_error'
,例如:

from keras.models import Sequential
from keras.layers import Dense
from keras import Input

def get_stats_model():

    model = Sequential()
    model.add(Dense(12, input_dim=8, activation='relu'))
    model.add(Dense(8, activation='relu'))
    model.add(Dense(1, activation='sigmoid'))
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['AUC'])
    
    return model

我得到以下错误:

Traceback (most recent call last):
  File "main.py", line 4, in <module>
    get_stats_model()
  File "/home/giuliano/Desktop/tfg/workspace/root/final/exp/mlp.py", line 64, in get_stats_model
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['AUC'])
  File "/home/giuliano/anaconda3/envs/tfg/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py", line 75, in symbolic_fn_wrapper
    return func(*args, **kwargs)
  File "/home/giuliano/anaconda3/envs/tfg/lib/python3.7/site-packages/keras/engine/training.py", line 222, in compile
    masks=masks)
  File "/home/giuliano/anaconda3/envs/tfg/lib/python3.7/site-packages/keras/engine/training.py", line 871, in _handle_metrics
    self._per_output_metrics[i], target, output, output_mask)
  File "/home/giuliano/anaconda3/envs/tfg/lib/python3.7/site-packages/keras/engine/training.py", line 842, in _handle_per_output_metrics
    metric_fn, y_true, y_pred, weights=weights, mask=mask)
  File "/home/giuliano/anaconda3/envs/tfg/lib/python3.7/site-packages/keras/engine/training_utils.py", line 1033, in call_metric_function
    update_ops = metric_fn.update_state(y_true, y_pred, sample_weight=weights)
  File "/home/giuliano/anaconda3/envs/tfg/lib/python3.7/site-packages/keras/utils/metrics_utils.py", line 42, in decorated
    update_op = update_state_fn(*args, **kwargs)
  File "/home/giuliano/anaconda3/envs/tfg/lib/python3.7/site-packages/keras/metrics.py", line 318, in update_state
    matches = self._fn(y_true, y_pred, **self._fn_kwargs)
  File "/home/giuliano/anaconda3/envs/tfg/lib/python3.7/site-packages/keras/metrics.py", line 1660, in __init__
    if num_thresholds <= 1:
  File "/home/giuliano/anaconda3/envs/tfg/lib/python3.7/site-packages/tensorflow_core/python/framework/ops.py", line 757, in __bool__
    self._disallow_bool_casting()
  File "/home/giuliano/anaconda3/envs/tfg/lib/python3.7/site-packages/tensorflow_core/python/framework/ops.py", line 526, in _disallow_bool_casting
    self._disallow_in_graph_mode("using a `tf.Tensor` as a Python `bool`")
  File "/home/giuliano/anaconda3/envs/tfg/lib/python3.7/site-packages/tensorflow_core/python/framework/ops.py", line 515, in _disallow_in_graph_mode
    " this function with @tf.function.".format(task))
tensorflow.python.framework.errors_impl.OperatorNotAllowedInGraphError: using a `tf.Tensor` as a Python `bool` is not allowed in Graph execution. Use Eager execution or decorate this function with @tf.function.

提前感谢。

来自评论

  • 创建
    虚拟环境
  • 导入Keras
    使用tensorflow导入Keras的
    代码
  • 解决了这个问题。(摘自drops和Aniket Bote)


    我有相同的tensorflow版本,但我的keras版本是2.2.4;对我来说,你的代码适用于各种度量单位它适用于我。我有相同的keras版本2.3.1。在新的虚拟环境中,我有一个建议。安装软件包并尝试代码。其次,您可以尝试从tensorflow本身导入keras。例如,tensorflow.keras的
    导入稠密
    ,这两种方法都解决了问题。
    Keras==2.3.1
    tensorflow==2.1.0