Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.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
OperatorNotAllowedInGraphError:在图形执行中不允许将'tf.Tensor'用作Python'bool'。向编译函数添加度量_Python_Python 3.x_Tensorflow_Keras - Fatal编程技术网

OperatorNotAllowedInGraphError:在图形执行中不允许将'tf.Tensor'用作Python'bool'。向编译函数添加度量

OperatorNotAllowedInGraphError:在图形执行中不允许将'tf.Tensor'用作Python'bool'。向编译函数添加度量,python,python-3.x,tensorflow,keras,Python,Python 3.x,Tensorflow,Keras,我正在使用一个卷积神经网络,在我开始运行它之后,我得到问题中所述的错误: OperatorNotAllowedInGraphError:在图形执行中不允许将tf.Tensor用作Pythonbool。使用渴望执行或用@tf.function修饰此函数 回溯(最近一次呼叫最后一次): 文件“/home/CNN1_FOLD1.py”,第452行,在 主密度(0.1,DenseNet,误差分析=真,深度=深度) 文件“/home/CNN1_FOLD1.py”,第440行,主目录 列车(型号,x_列车,

我正在使用一个卷积神经网络,在我开始运行它之后,我得到问题中所述的错误:

OperatorNotAllowedInGraphError:在图形执行中不允许将
tf.Tensor
用作Python
bool
。使用渴望执行或用@tf.function修饰此函数

回溯(最近一次呼叫最后一次):

文件“/home/CNN1_FOLD1.py”,第452行,在 主密度(0.1,DenseNet,误差分析=真,深度=深度)

文件“/home/CNN1_FOLD1.py”,第440行,主目录 列车(型号,x_列车,y_列车,x_值,y_值,时代列表=[500,5000,300],名称=型号名称,学习率=学习率)

文件“/home/CNN1_FOLD1.py”,第320行,列车中 “AUC”])

文件 “/home/.local/lib/python3.7/site packages/keras/backend/tensorflow_backend.py”, 第75行,符号包装 返回函数(*args,**kwargs)

文件 “/home/.local/lib/python3.7/site packages/keras/engine/training.py”, 第222行,在编译中 面具=面具)

文件 “/home/.local/lib/python3.7/site packages/keras/engine/training.py”, 第871行,in _handle _度量 自我。\每输出\度量[i],目标,输出,输出\掩码)

文件 “/home/.local/lib/python3.7/site packages/keras/engine/training.py”, 第842行,输入/处理/输出度量 度量值(fn,y_真,y_pred,权重=权重,掩码=掩码)

文件 “/home/.local/lib/python3.7/site packages/keras/engine/training_utils.py”, 第1033行,调用度量函数 更新操作=度量值。更新状态(y正确,y预测,样本重量=重量)

文件 “/home/.local/lib/python3.7/site packages/keras/utils/metrics_utils.py”, 第42行,已装饰 update_op=update_state_fn(*args,**kwargs)

文件 “/home/.local/lib/python3.7/site packages/keras/metrics.py”, 第318行,处于更新_状态 匹配=self.\u fn(y\u true,y\u pred,**self.\u fn\u kwargs)

文件 “/home/.local/lib/python3.7/site packages/keras/metrics.py”, 第1421行,在init 阈值,默认\u阈值=默认\u阈值)

文件 “/home/.local/lib/python3.7/site packages/keras/utils/metrics_utils.py”, 第107行,在parse_init_阈值中 断言\u阈值\u范围(到\u列表(阈值))

文件 “/home/.local/lib/python3.7/site packages/keras/utils/metrics_utils.py”, 第98行,在断言阈值范围内 无效的_阈值=[t表示阈值中的t,如果t为无或t<0或t>1]

文件 “/home/.local/lib/python3.7/site packages/keras/utils/metrics_utils.py”, 第98行,输入 无效的_阈值=[t表示阈值中的t,如果t为无或t<0或t>1]

文件 “/home/.local/lib/python3.7/site packages/tensorflow_core/python/framework/ops.py”, 第765行,在bool self.\u不允许\u bool\u铸造()

文件 “/home/.local/lib/python3.7/site packages/tensorflow_core/python/framework/ops.py”, 第534行,不允许铸造 self.\u不允许在图模式下(“使用
tf.Tensor
作为Python
bool
”)

文件 “/home/.local/lib/python3.7/site packages/tensorflow_core/python/framework/ops.py”, 第523行,在“禁止”模式下 “此函数带有@tf.function.”.format(任务))

OperatorNotAllowedInGraphError:使用
tf.Tensor
作为Python
bool
在图形执行中不允许。使用急切的执行或装饰 此函数带有@tf.function

我知道这与我的指标有关。我最初运行它,如下所示:

   model.compile(loss='categorical_crossentropy', 
                  optimizer=opt, 
                  metrics=['accuracy'])
但我想添加更多指标,所以我将其更改为:

    model.compile(loss='categorical_crossentropy', 
                  optimizer=opt, 
                  metrics=['accuracy',
                           'Precision',
                           'Recall',
                           'AUC'])
或:

两者都不起作用,给了我错误

我能做些什么来解决这个问题


谢谢大家!

我也有类似的问题。由于TensorFlow升级到2.x,要使用keras API度量,您应该实例化所有这些度量,以便像这样编译:

model.compile(loss='categorical_crossentropy', 
                  optimizer=opt, 
                  metrics=[tf.keras.metrics.Accuracy(),
                           tf.keras.metrics.Precision(),
                           tf.keras.metrics.Recall(),
                           tf.keras.metrics.AUC()])
希望这有帮助:)

model.compile(loss='categorical_crossentropy', 
                  optimizer=opt, 
                  metrics=[tf.keras.metrics.Accuracy(),
                           tf.keras.metrics.Precision(),
                           tf.keras.metrics.Recall(),
                           tf.keras.metrics.AUC()])