【问题标题】:How to load tf.keras models with keras如何使用 keras 加载 tf.keras 模型
【发布时间】:2019-09-20 03:23:24
【问题描述】:

我一直在使用 tensorflow 1.12.0 中的 keras 模块来训练和保存模型。我最近遇到了一个看似有用的权重/输出可视化库,但它们需要将模型作为 Keras 模型加载。我在尝试使用 keras 加载我的 tf.keras 模型时遇到错误,希望有人能提供解决方案。 Python 3.5.2 版,Keras 2.2.4 版。

我已经为 GlorotUniform 定义了自定义对象,因为 keras 无法识别该初始化程序。之后,当我尝试加载模型时,我得到一个TypeError

# This works
model = tf.keras.models.load_model('./densenet_model.h5')

# This does not work
model = keras.models.load_model('./densenet_model.h5', custom_objects={"GlorotUniform": tf.keras.initializers.glorot_uniform})

# This is the error that happens
TypeError: tuple indices must be integers or slices, not list

总之,我想知道是否有一种简单的方法可以将使用tf.keras 创建的模型转换为 keras 模型。

【问题讨论】:

    标签: tensorflow keras


    【解决方案1】:

    我想出了一个解决方法。我只是用 tf.keras.load_model 加载模型,然后用 save_weights 加载。然后我用 Keras 构建相同的模型,只使用 load_weights。我通过使用我的验证数据集检查输出来验证权重是否正确加载。

    【讨论】:

      【解决方案2】:

      我使用了from tensorflow.python.keras.models import load_model 而不是from keras.models import load_model。问题解决了。

      【讨论】:

        猜你喜欢
        • 2021-01-29
        • 2020-02-05
        • 1970-01-01
        • 1970-01-01
        • 2020-06-04
        • 1970-01-01
        • 1970-01-01
        • 2019-08-21
        • 2020-09-14
        相关资源
        最近更新 更多