加载Keras模型KeyError:'weighted_metrics'

时间:2018-11-19 05:19:40

标签: python keras

尝试通过Keras加载模型时出现以下错误:

Traceback (most recent call last):
  File "visualise.py", line 82, in <module>
    model = tf.keras.models.load_model(CNN_MODEL_DIR)
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/tensorflow/python/keras/engine/saving.py", line 251, in load_model
    training_config['weighted_metrics'])
KeyError: 'weighted_metrics'

我正在使用model.save("Models/ResNet.model")保存模型,并使用model = tf.keras.models.load_model(CNN_MODEL_DIR)加载模型。

我正在训练该型号的计算机具有 Keras 2.1.2 ,而我要对其进行测试的计算机(我的家用计算机)具有 Keras 2.2.4 。有没有解决这个错误的方法,而无需重新训练模型或降级我的Keras版本?

2 个答案:

答案 0 :(得分:0)

我确定了问题:

我用from keras.applications.resnet50 import ResNet50导入了ResNet模型,并通过使用model.save()保存了它。因此,我的模型纯粹与Keras有关。因此,当我尝试使用与Tensorflow相关的导入(即model = tf.keras.models.load_model(CNN_MODEL_DIR))加载时,出现了错误。

解决方法只是将导入更改为纯粹的Keras。

model = keras.models.load_model(CNN_MODEL_DIR)

答案 1 :(得分:0)

使用compile=False作为参数可以轻松解决您的问题。 例如:

from tensorflow.keras.models import load_model

model = load_model('your_model', compile=False)

实际上,您遇到问题的原因是因为Tensorflow在加载模型后编译模型时发生了错误,因此请尝试使用此参数,我认为它应该可以解决您的问题。