Keras保存和载入训练好的模型和参数
生活随笔
收集整理的這篇文章主要介紹了
Keras保存和载入训练好的模型和参数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.保存模型
my_model = create_model_function( ...... )my_model.compile( ...... )my_model.fit( ...... )model_name . save( filepath, overwrite: bool=True, include_optimizer: bool=True )filepath:保存的路徑
overwrite:如果存在源文件,是否覆蓋
include_optimizer:是否保存優化器狀態
ex : mymodel.save(filepath=“p402/my_model.h5”, includeoptimizer=False)
2.載入模型
my_model = keras . models . load_model( filepath )# 載入后可以繼續訓練:my_model . fit( X_train_2,Y_train_2 )# 也可以直接評估:preds = my_model . evaluate( X_test, Y_test )3.僅保存模型的結構,而不包含其權重或配置信息
# save as JSON json_string = model.to_json() # save as YAML yaml_string = model.to_yaml()從保存好的json文件或yaml文件中載入模型
# model reconstruction from JSON: from keras.models import model_from_json model = model_from_json(json_string)# model reconstruction from YAML model = model_from_yaml(yaml_string)4.需要保存模型的權重,可通過下面的代碼利用HDF5進行保存
model.save_weights('my_model_weights.h5')若在代碼中初始化一個完全相同的模型,請使用
model.load_weights('my_model_weights.h5')5.若要加載權重到不同的網絡結構(有些層一樣)中,例如fine-tune或transfer-learning,可通過層名字來加載模型
model.load_weights('my_model_weights.h5', by_name=True) """ 假如原模型為:model = Sequential()model.add(Dense(2, input_dim=3, name="dense_1"))model.add(Dense(3, name="dense_2"))...model.save_weights(fname) """ # new model model = Sequential() model.add(Dense(2, input_dim=3, name="dense_1")) # will be loaded model.add(Dense(10, name="new_dense")) # will not be loaded# load weights from first model; will only affect the first layer, dense_1. model.load_weights(fname, by_name=True)參考:
Keras如何保存和載入訓練好的模型和參數
總結
以上是生活随笔為你收集整理的Keras保存和载入训练好的模型和参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自编码器(Auto Encoder)原理
- 下一篇: Scala,Spark和IDEA学习笔记