6

我正在玩 TensorFlow,我正在尝试将 Keras 模型导出为 TensorFlow 模型。我遇到了上述错误。我正在关注 Lynda 的“使用 Keras 2.0 构建深度学习应用程序”(https://www.linkedin.com/learning/building-deep-learning-applications-with-keras-2-0/exporting-google-cloud-兼容型号?u=42751868

在尝试构建张量流模型时,我遇到了这个错误,在第 66 行抛出了添加元图和变量函数的定义。

第 66 行,在 build_tensor_info raise RuntimeError("build_tensor_info is not supported in Eager mode.") RuntimeError: build_tensor_info is not supported in Eager mode.

...model_builder.add_meta_graph_and_variables(
        K.get_session(),
        tags=[tf.compat.v1.saved_model.tag_constants.SERVING],
        signature_def_map={
            tf.compat.v1.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY: signature_def
        }
    )
...

大家有什么想法吗?

4

2 回答 2

11

是因为您使用的是 tensorflow v2。您必须使用 tensorflow v2 兼容性并禁用 Eager 模式。

请注意您使用的 tensorflow 导入,例如,如果您使用 tensorflow_core,请确保您使用的是“tensorflow”中的所有依赖项。您必须在代码之前添加:

import tensorflow as tf
if tf.executing_eagerly():
   tf.compat.v1.disable_eager_execution()
于 2020-04-29T16:50:51.607 回答
4

在从 LinkedIn Learning 编译代码以导出使用 TensorFlow 1.x API 编写的 Keras 模型时,遇到了完全相同的问题。用等效的 tf.compat.v1 函数替换所有内容后,例如更改

model_builder = tf.saved_model.builder.SavedModelBuilder("exported_model")

model_builder = tf.compat.v1.saved_model.Builder("exported_model")

并按照 Cristian Zumelzu 上面的建议禁用急切执行,代码能够正常运行,并出现有关已弃用函数的预期警告。

于 2020-10-26T02:26:16.373 回答