Keras模型无法正确保存

时间:2018-10-09 14:43:39

标签: python tensorflow keras

我正在Keras中训练神经网络,但是当有新数据出现时,我尝试对其进行重新训练,那么,这个时期的损失就和我第一次训练模型的损失一样高。

 checkpoint = ModelCheckpoint('my_model.h5', monitor='loss', verbose=1, save_best_only=True, mode='min')
 callbacks_list = [checkpoint]
 model.fit(X_train,y_train, batch_size = batch_size, epochs = epochs, callback = callbacks_list)
 new_model = load_model('my_model.h5')

如此处的建议Keras: How to save model and continue training?,我试图在modelnew_model中预测相同的数据,并使用以下方法测量差异:

assert_allclose(model.predict(x_train),
            new_model.predict(x_train),
            1e-5)

实际上,我遇到了断言错误,甚至使用tol = 1e-2也遇到了错误,因此使我认为我的模型没有按预期加载。任何人都知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

ModelCheckpoint可以节省训练中损失较少的模型重量。

您的model保存了最后一个时期的重量。

如果模型的最后一个时期不是损失较小的时期,则保存的模型(new_model)的权重与原始模型的权重不匹配,并且预测也不相同。< / p>