003-keras模型的保存於加載
阿新 • • 發佈:2018-11-10
mode image sta 上傳 信息 結構 blog dot 繼續
方式一: 保存所有狀態
保存模型和模型圖
# 保存模型 model.save(file_path) model_name = ‘{}/{}_{}_{}_v2.h5‘.format(params[‘model_dir‘],params[‘filters‘],params[‘pool_size_1‘],params[‘pool_size_2‘]) model.save(model_name) # 保存模型圖 from keras.utils import plot_model # 需要安裝pip install pydot model_plot = ‘{}/{}_{}_{}_v2.png‘.format(params[‘model_dir‘],params[‘filters‘],params[‘pool_size_1‘],params[‘pool_size_2‘]) plot_model(model, to_file=model_plot)
- 模型圖如圖所示
加載模型
from keras.models import load_model model_path = ‘../docs/keras/100_2_3_v2.h5‘ model = load_model(model_path)
優勢和弊端
優勢一在於模型保存和加載就一行代碼,寫起來很方便。
優勢二在於不僅保存了模型的結構和參數,也保存了訓練配置等信息。以便於從上次訓練中斷的地方繼續訓練優化。
劣勢就是占空間太大,我的模型用這種方式占了一個G。【紅色部分就是上述模型采用第一種方式保存的文件】本地使用還好,如果是多人的模塊需要集成,上傳或者同步將會很耗時。
方式二: 只保存模型結構和模型參數
保存模型
保存模型圖部分和方式一相同。
import yaml import json # 保存模型結構到yaml文件或者json文件 yaml_string = model.to_yaml() open(‘../docs/keras/model_architecture.yaml‘, ‘w‘).write(yaml_string) # json_string = model.to_json() # open(‘../docs/keras/model_architecture.json‘, ‘w‘).write(json_string) # 保存模型參數到h5文件 model.save_weights(‘../docs/keras/model_weights.h5‘)
加載模型
import yaml import json from keras.models import model_from_json from keras.models import model_from_yaml # 加載模型結構 model = model_from_yaml(open(‘../docs/keras/model_architecture.yaml‘).read()) # model = model_from_json(open(‘../docs/keras/model_architecture.json‘).read()) # 加載模型參數 model.load_weights(‘../docs/keras/model_weights.h5‘)
優勢和弊端
- 優勢就是節省了硬盤空間,方便同步和協作
- 劣勢是丟失了訓練的一些配置信息
003-keras模型的保存於加載