keras模型儲存的3種形式
阿新 • • 發佈:2019-01-04
目錄
一、儲存整個模型
model.save(filepath)
將Keras模型和權重儲存在一個HDF5檔案中,該檔案將包含:
- 模型的結構
- 模型的權重
- 訓練配置(損失函式,優化器,準確率等)
- 優化器的狀態,以便於從上次訓練中斷的地方
前提是已經安裝python的h5py包:
from keras.models import load_model
當再一次使用時可以model.load_model(filepath)載入模型。
二、儲存模型結構
model.to_jason()將模型序列化儲存為json檔案,裡面記錄了網路的整體結構, 各個層的引數設定等資訊. 將json字串儲存到檔案.
open(‘filename.json','w').write(json_string)
from keras.models import model_form_json
json_string=open('filename.json').read()
model=model_from_json(json_string)
除了json格式,還可以儲存為yaml格式的字串,形式與JSON一樣
三、儲存模型權重
model.save_weights()
經過調參後網路的輸出精度比較滿意後,可以將訓練好的網路權重引數儲存下來,可通過下面的程式碼利用HDF5進行儲存:
model.save_weights(‘model_weights.h5’)
使用時載入模型:
model.load_weights(‘model_weights.h5’)
如果需要載入權重到不同的網路結構(有些層一樣)中,例如fine-tune或transfer-learning,可以通過層名字來載入模型: model.load_weights('my_model_weights.h5', by_name=True)
因此建模時最好給每個層定義名字。