运行 进入以下问题:build_tensor_flow 在 Eager 模式下不受支持

Run into the following issue: build_tensor_flow is not supported in Eager Mode

我正在玩 TensorFlow,我正在尝试将 Keras 模型导出为 TensorFlow 模型。而我运行进入了上述错误。我正在关注 Lynda (https://www.linkedin.com/learning/building-deep-learning-applications-with-keras-2-0/exporting-google-cloud-compatible-models?u=42751868)

的 "Build Deep Learning Applications with Keras 2.0"

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

第 66 行,在 build_tensor_info 提高 RuntimeError("build_tensor_info is not supported in Eager mode.") RuntimeError:Eager 模式不支持 build_tensor_info。

...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
        }
    )
...

大家有什么想法吗?

是因为你使用的是tensorflow v2.您必须使用 tensorflow v2 兼容性并禁用急切模式。

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

import tensorflow as tf
if tf.executing_eagerly():
   tf.compat.v1.disable_eager_execution()

运行 在编译来自 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 上面的建议禁用急切执行,代码能够 运行 很好地处理有关已弃用函数的预期警告。