最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在Keras中實現(xiàn)保存和加載權(quán)重及模型結(jié)構(gòu)

 更新時間:2020年06月15日 10:34:51   作者:Microstrong0305  
這篇文章主要介紹了在Keras中實現(xiàn)保存和加載權(quán)重及模型結(jié)構(gòu),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

1. 保存和加載模型結(jié)構(gòu)

(1)保存為JSON字串

json_string = model.to_json()

(2)從JSON字串重構(gòu)模型

from keras.models import model_from_json
model = model_from_json(json_string)

(3)保存為YAML字串

yaml_string = model.to_yaml()

(4)從YAML字串重構(gòu)模型

model = model_from_yaml(yaml_string)

2. 保存和加載模型權(quán)重(參數(shù))

from keras.models import load_model
 
# 創(chuàng)建HDF5文件'my_model.h5',保存模型參數(shù)
model.save('my_model.h5')
 
# 加載模型參數(shù)
load_model('my_model.h5')

2.1 處理已保存模型中的自定義層(或其他自定義對象)

如果要加載的模型包含自定義層或其他自定義類或函數(shù),則可以通過 custom_objects 參數(shù)將它們傳遞給加載機制:

from keras.models import load_model
 
# 假設(shè)你的模型包含一個 AttentionLayer 類的實例
model = load_model('my_model.h5', custom_objects={'AttentionLayer': AttentionLayer})

或者,你可以使用 自定義對象作用域:

from keras.utils import CustomObjectScope
with CustomObjectScope({'AttentionLayer': AttentionLayer}):
  model = load_model('my_model.h5')

自定義對象的處理與 load_model, model_from_json, model_from_yaml 的工作方式相同:

from keras.models import model_from_json
model = model_from_json(json_string, custom_objects={'AttentionLayer': AttentionLayer})

2019年6月1號更新:

更詳細的使用方法:

如何保存Keras模型?

(1)一個HDF5文件即保存模型的結(jié)構(gòu)又保存模型的權(quán)重

我們不推薦使用pickle或cPickle來保存Keras模型。

你可以使用model.save(filepath)將Keras模型和權(quán)重保存在一個HDF5文件中,該文件將包含:

模型的結(jié)構(gòu),以便重構(gòu)該模型

模型的權(quán)重

訓(xùn)練配置(損失函數(shù),優(yōu)化器等)

優(yōu)化器的狀態(tài),以便于從上次訓(xùn)練中斷的地方開始

使用keras.models.load_model(filepath)來重新實例化你的模型,如果文件中存儲了訓(xùn)練配置的話,該函數(shù)還會同時完成模型的編譯。

例子:

from keras.models import load_model
 
model.save('my_model.h5') # creates a HDF5 file 'my_model.h5'
del model # deletes the existing model
 
# returns a compiled model
# identical to the previous one
model = load_model('my_model.h5')

(2)只保存模型的結(jié)構(gòu)

如果你只是希望保存模型的結(jié)構(gòu),而不包含其權(quán)重或配置信息,可以使用:

# save as JSON
json_string = model.to_json()
 
# save as YAML
yaml_string = model.to_yaml()

這項操作將把模型序列化為json或yaml文件,這些文件對人而言也是友好的,如果需要的話你甚至可以手動打開這些文件并進行編輯。

當然,你也可以從保存好的json文件或yaml文件中載入模型:

# model reconstruction from JSON:
from keras.models import model_from_json
model = model_from_json(json_string)
 
# model reconstruction from YAML
model = model_from_yaml(yaml_string)

(3)只保存模型的權(quán)重

如果需要保存模型的權(quán)重,可通過下面的代碼利用HDF5進行保存。注意,在使用前需要確保你已安裝了HDF5和其Python庫h5py。

model.save_weights('my_model_weights.h5')

如果你需要在代碼中初始化一個完全相同的模型,請使用:

model.load_weights('my_model_weights.h5')

如果你需要加載權(quán)重到不同的網(wǎng)絡(luò)結(jié)構(gòu)(有些層一樣)中,例如fine-tune或transfer-learning,你可以通過層名字來加載模型:

model.load_weights('my_model_weights.h5', by_name=True)

例如:

"""
假如原模型為:
  model = Sequential()
  model.add(Dense(2, input_dim=3, name="dense_1"))
  model.add(Dense(3, name="dense_2"))
  ...
  model.save_weights(fname)
"""
# new model
model = Sequential()
model.add(Dense(2, input_dim=3, name="dense_1")) # will be loaded
model.add(Dense(10, name="new_dense")) # will not be loaded
 
# load weights from first model; will only affect the first layer, dense_1.
model.load_weights(fname, by_name=True)

以上這篇在Keras中實現(xiàn)保存和加載權(quán)重及模型結(jié)構(gòu)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Python Typing模塊提升代碼可讀性和健壯性實例探索

    使用Python Typing模塊提升代碼可讀性和健壯性實例探索

    這篇文章主要為大家介紹了使用Python Typing模塊提升代碼可讀性和健壯性實例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • pytorch在fintune時將sequential中的層輸出方法,以vgg為例

    pytorch在fintune時將sequential中的層輸出方法,以vgg為例

    今天小編就為大家分享一篇pytorch在fintune時將sequential中的層輸出方法,以vgg為例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 熵值法原理及Python實現(xiàn)的示例詳解

    熵值法原理及Python實現(xiàn)的示例詳解

    熵值法也稱熵權(quán)法,是學(xué)術(shù)研究及實際應(yīng)用中的一種常用且有效的編制指標的方法。本文就來和大家聊聊熵值法原理及Python實現(xiàn),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-02-02
  • 使用pycharm和pylint檢查python代碼規(guī)范操作

    使用pycharm和pylint檢查python代碼規(guī)范操作

    這篇文章主要介紹了使用pycharm和pylint檢查python代碼規(guī)范操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python中pip的使用方法詳解

    python中pip的使用方法詳解

    pip 是 Python 的默認包管理工具,隨 Python 3.x 版本一同安裝,它使得安裝和管理 Python 包變得非常簡單,本文將介紹 pip 的基本使用方法、常用命令及其代碼示例,需要的朋友可以參考下
    2024-12-12
  • Python獲取二維數(shù)組的行列數(shù)的2種方法

    Python獲取二維數(shù)組的行列數(shù)的2種方法

    這篇文章主要介紹了Python獲取二維數(shù)組的行列數(shù)的2種方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • 解決Django no such table: django_session的問題

    解決Django no such table: django_session的問題

    這篇文章主要介紹了解決Django no such table: django_session的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python元組解密不可變的數(shù)據(jù)之美探索

    Python元組解密不可變的數(shù)據(jù)之美探索

    這篇文章主要介紹了Python元組解密:不可變的數(shù)據(jù)之美,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • Python中常見的加密解密算法總結(jié)

    Python中常見的加密解密算法總結(jié)

    這篇文章主要為大家詳細介紹了Python中常見的一些加密解密算法的實現(xiàn),文中的示例代碼講解詳細,具有一定的學(xué)習(xí)價值,感興趣的小伙伴可以了解一下
    2023-03-03
  • Python面向?qū)ο蟪绦蛟O(shè)計之私有變量,私有方法原理與用法分析

    Python面向?qū)ο蟪绦蛟O(shè)計之私有變量,私有方法原理與用法分析

    這篇文章主要介紹了Python面向?qū)ο蟪绦蛟O(shè)計之私有變量,私有方法,結(jié)合實例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計中私有變量,私有方法相關(guān)概念、原理、用法及操作注意事項,需要的朋友可以參考下
    2020-03-03

最新評論

辛集市| 化德县| 白朗县| 巴东县| 迁安市| 额尔古纳市| 扎鲁特旗| 锡林浩特市| 南通市| 嘉定区| 石家庄市| 唐山市| 泸溪县| 四子王旗| 志丹县| 抚州市| 龙山县| 武威市| 句容市| 会同县| 浮梁县| 镇远县| 汉源县| 工布江达县| 沿河| 桓仁| 河津市| 南皮县| 尚志市| 吉木萨尔县| 天门市| 二连浩特市| 青阳县| 阿鲁科尔沁旗| 通榆县| 北流市| 巴林右旗| 宜春市| 洪湖市| 武安市| 罗源县|