91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Keras查看model weights.h5文件內容的實現方法

發布時間:2020-07-18 17:53:10 來源:億速云 閱讀:381 作者:小豬 欄目:開發技術

這篇文章主要講解了使用Keras查看model weights.h5文件內容的實現方法,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

Keras的模型是用hdf5存儲的,如果想要查看模型,keras提供了get_weights的函數可以查看:

for layer in model.layers: weights = layer.get_weights() # list of numpy array

而通過hdf5模塊也可以讀取:hdf5的數據結構主要是File - Group - Dataset三級,具體操作API可以看官方文檔。weights的tensor保存在Dataset的value中,而每一集都會有attrs保存各網絡層的屬性:

import h6py
 
def print_keras_wegiths(weight_file_path):
  f = h6py.File(weight_file_path) # 讀取weights h6文件返回File類
  try:
    if len(f.attrs.items()):
      print("{} contains: ".format(weight_file_path))
      print("Root attributes:")
    for key, value in f.attrs.items():
      print(" {}: {}".format(key, value)) # 輸出儲存在File類中的attrs信息,一般是各層的名稱
 
    for layer, g in f.items(): # 讀取各層的名稱以及包含層信息的Group類
      print(" {}".format(layer))
      print("  Attributes:")
      for key, value in g.attrs.items(): # 輸出儲存在Group類中的attrs信息,一般是各層的weights和bias及他們的名稱
        print("   {}: {}".format(key, value)) 
 
      print("  Dataset:")
      for name, d in g.items(): # 讀取各層儲存具體信息的Dataset類
        print("   {}: {}".format(name, d.value.shape)) # 輸出儲存在Dataset中的層名稱和權重,也可以打印dataset的attrs,但是keras中是空的
        print("   {}: {}".format(name. d.value))
  finally:
    f.close()

而如果想修改某個值,則需要通過新建File類,然后用create_group, create_dataset函數將信息重新寫入,具體操作可以查看這篇文章

補充知識:keras load model 并保存特定層 (pop) 的權重save new_model

有時候我們保存模型(save model),會保存整個模型輸入到輸出的權重,如果,我們不想保存后幾層的參數,保存成新的模型。

import keras
from keras.models import Model, load_model
from keras.layers import Input, Dense
from keras.optimizers import RMSprop
import numpy as np

創建原始模型并保存權重

inputs = Input((1,))
dense_1 = Dense(10, activation='relu')(inputs)
dense_2 = Dense(10, activation='relu')(dense_1)
dense_3 = Dense(10, activation='relu')(dense_2)
outputs = Dense(10)(dense_3)

model = Model(inputs=inputs, outputs=outputs)
model.compile(optimizer=RMSprop(), loss='mse')
model.save('test.h6')

加載模型并對模型進行調整

loaded_model = load_model('test.h6')
loaded_model.layers.pop()
loaded_model.layers.pop()

此處去掉了最后兩層--dense_3, dense_2。

創建新的model并加載修改后的模型

new_model = Model(inputs=inputs, outputs=dense_1)
new_model.compile(optimizer=RMSprop(), loss='mse')
new_model.set_weights(loaded_model.get_weights())

new_model.summary()
new_model.save('test_complete.h6')

看完上述內容,是不是對使用Keras查看model weights.h5文件內容的實現方法有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阳谷县| 舒城县| 朝阳县| 南川市| 伊吾县| 开鲁县| 肇源县| 黄骅市| 克什克腾旗| 临城县| 墨竹工卡县| 漳州市| 古蔺县| 乳山市| 鄱阳县| 阿克陶县| 定兴县| 宝兴县| 澎湖县| 成武县| 福海县| 双辽市| 太康县| 吉木萨尔县| 威远县| 麟游县| 岐山县| 武胜县| 临湘市| 泗水县| 仙桃市| 杭州市| 德庆县| 华容县| 富蕴县| 嘉义市| 秭归县| 搜索| 德阳市| 万荣县| 波密县|