1. 程式人生 > >keras模型儲存的3種形式

keras模型儲存的3種形式

目錄

一、儲存整個模型

二、儲存模型結構

三、儲存模型權重


一、儲存整個模型

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)

因此建模時最好給每個層定義名字。