我一直在使用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模型。
发布于 2019-05-02 01:57:43
我想出了一个解决办法。我只需使用tf.keras.load_model加载模型,然后加载save_weights。然后,我使用Keras构建相同的模型,并只使用load_weights。我用我的验证数据集检查了输出,从而验证了权重是否被正确加载。
发布于 2019-11-22 05:01:33
我使用的是from tensorflow.python.keras.models import load_model而不是from keras.models import load_model。问题就解决了。
https://stackoverflow.com/questions/55938313
复制相似问题