基於keras 模型 結構 權重儲存的實現

2022-09-28 08:21:07 字數 1237 閱讀 1017

如何將訓練好的網路進行儲存,我們可以用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 用乙個標識不斷跟蹤棧頂...