各框架模型保存的格式彙總

Tensorflow

1、CheckPoint(.ckpt)
在訓練 TensorFlow 模型時,每迭代若干輪需要保存一次權值到磁盤,稱爲“checkpoint”。這種格式文件是由 tf.train.Saver() 對象調用 saver.save() 生成的,只包含若干 Variables 對象序列化後的數據,不包含圖結構,所以只給 checkpoint 模型不提供代碼是無法重新構建計算圖的。
載入 checkpoint 時,調用 saver.restore(session, checkpoint_path)。

2、GraphDef(.pb)
這種格式文件包含 protobuf 對象序列化後的數據,包含了計算圖,可以從中得到所有運算符(operators)的細節,也包含張量(tensors)和 Variables 定義,但不包含 Variable 的值,因此只能從中恢復計算圖,但一些訓練的權值仍需要從 checkpoint 中恢復。
.pb 爲二進制文件,實際上 protobuf 也支持文本格式(*.pbtxt),但包含權值時文本格式會佔用大量磁盤空間,一般不用。

Keras

1、保存整個模型(.h5)
model.save(filepath)將Keras模型和權重保存在一個HDF5文件中,該文件將包含:
模型的結構
模型的權重
訓練配置(損失函數,優化器,準確率等)
優化器的狀態,以便於從上次訓練中斷的地方

2、保存模型結構
model.to_jason()將模型序列化保存爲json文件,裏面記錄了網絡的整體結構, 各個層的參數設置等信息. 將json字符串保存到文件.
除了json格式,還可以保存爲yaml格式的字符串,形式與JSON一樣

3、保存模型權重(.h5)
經過調參後網絡的輸出精度比較滿意後,可以將訓練好的網絡權重參數保存下來,可通過下面的代碼利用HDF5進行保存:
model.save_weights(‘model_weights.h5’)

Pytorch

1、保存和加載整個模型(.pkl)
torch.save(model_object, ‘model.pkl’)
model = torch.load(‘model.pkl’)

2、僅保存和加載模型參數(推薦使用)
torch.save(model_object.state_dict(), ‘params.pkl’)
model_object.load_state_dict(torch.load(‘params.pkl’))

3、pytorch保存數據的格式爲.t7文件或者.pth文件,或者.pkl格式,t7文件是沿用torch7中讀取模型權重的方式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章