首页 > 解决方案 > OperatorNotAllowedInGraphError:Graph 执行中不允许使用 tf.Tensor 作为 Python bool

问题描述

嘿,我正在尝试将我的 Keras 模型转换为 CoreML,但我不断收到此错误:

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.

这是我的代码:

import keras
import coremltools
import tensorflow as tf

model = keras.models.load_model('machine.h5')

print(model.input)
print(model.input_shape)
print(model.output)

model= coremltools.converters.keras.convert(
'machine.h5', input_name_shape_dict={'embedding_input:0': (None, 24)},
output_names=['dense_2/Sigmoid:0'])

model.save('xcodeModel.mlmodel')

不知道我在这里做错了什么。希望有这个问题的答案!

标签: pythonmachine-learningkerascoremlcoremltools

解决方案


我认为错误来自您使用的 Tensorflow 和 Keras 版本。请将 tensorflow 降级为“1.14.0”版本,将 Keras 降级为“2.2.4”版本,也许它会解决问题。


推荐阅读