答案 0 :(得分:3)
由于很久以前,我正在为任何新用户更新答案。如果您使用的是最近的Tensorflow
(例如TF2.1
或更高版本),则可以如上所述重新训练模型。
有两个重要选项(以* .tf格式保存和以* .h5格式保存)。这两个选项的保存方式相似,但是加载保存的模型有所不同。
加载已保存的模型时,compile = True
默认是默认值,它将保留权重而没有任何问题。加载保存的模型后,您可以像往常一样使用loaded_model.fit()
重新训练。
model.save('./MyModel_tf',save_format='tf')
# loading the saved model
loaded_model = tf.keras.models.load_model('./MyModel_tf')
# retraining the model
loaded_model.fit(x_train, y_train, epochs = 10, validation_data = (x_test,y_test),verbose=1)
加载已保存的模型时,默认情况下compile = True
会显示以下警告。
WARNING:tensorflow:Error in loading the saved optimizer state. As a result, your model is starting with a freshly initialized optimizer
上述错误意味着它将使用新近初始化的优化器。加载保存的模型后,您可以像往常一样使用loaded_model.fit()
重新训练。
model.save('./MyModel_h5.h5', save_format='h5')
# loading the saved model
loaded_model_h5 = tf.keras.models.load_model('./MyModel_h5.h5')
请检查详细的example here。
另一个最重要的一点是,当您拥有custom_objects时,则在加载模型时需要选择compile=False
,然后使用custom_objects编译模型。以上两种方法都是如此。
希望这会有所帮助。谢谢!
答案 1 :(得分:1)