如何將訓練好的網路進行儲存,我們可以用pickle或cpickle來儲存keras模型,同時我們可以用下面的方法:
一、儲存整個模型
model.s**e(filepath)將keras模型和權重儲存在乙個hdf5檔案中,該檔案將包含:
模型的結構
模型的權重
訓練配置(損失函式,優化器,準確率等)
優化器的狀態,以便於從上次訓練中斷的地方
前提是已經安裝python的h5py包.
from keras.models import load_model
當我們再一次使用時可以model.lo載入模型
二、儲存模型的結構
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.s**e_weights()
我們經過調參後網路的輸出精度比較滿意後,可以將訓練好的網路權重引數儲存下 來.可通過下面的**利用hdf5進行儲存
model.s**e_weights(『model_weights.h5')
使用的時載入模型:
model.load_weights(『model_weights.h5')
如果你需要載入權重到不同的網路結構(有些層一樣)中,例如fine-tune或transfer程式設計客棧-learning,你可以通過層名字來載入模型:
model.load_weights('my_model_weights.h5', by_name=true)
因此我們建模時最好給每個層定義名字
以上就是我們儲存模型的三種方法,需要我們在實踐時多總結。
這篇基於keras 模型、結構、權重儲存的實現就是www.cppcns.com小編分享給大家的全部內容了,希望能給大家乙個參考,也希望大家多多支援我們。
本文標題: 基於keras 模型、結構、權重儲存的實現
本文位址: /jiaoben/python/299100.html
Hbase 儲存結構 資料模型
table hbase以表的形式儲存資料。表有行和列組成。列劃分為若干個列族 column family 一行由rowkey 時間戳,若干個列組成。除了rowkey和時間戳外,其他的列稱為列族,他的命名有一定的規範。rowkey就像關聯式資料庫的主鍵,用來檢索記錄。table中所有的記錄按rowke...
基於雲計算的海量資料儲存模型
隨著越來越多的人使用計算機,整個網路會產生數量巨大的資料,如何儲存網路中產生 的這些海量資料,已經是乙個擺在面前亟待解決的問題。現在常見的三種儲存方式是das 1 nas 和san,但是面對網路產生的越來越多的資料,這三種方式的缺點就明顯的暴露出來。das 儲存方式可擴充套件性差,系統效能低,儲存分...
基於順序儲存結構的棧StaticStack的實現
棧頂 top 允許操作的一端 棧底 bottom 不允許操作的一端 ifndef stack h define stack h include object.h namespace dtlib endif 1 使用原生陣列作為棧的儲存空間 2 使用模極引數決定棧的最大容量 3 用乙個標識不斷跟蹤棧頂...