尝试通过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版本?
答案 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在加载模型后编译模型时发生了错误,因此请尝试使用此参数,我认为它应该可以解决您的问题。