溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

解讀tensorflow權(quán)重文件的方法

發(fā)布時(shí)間:2021-05-27 09:54:47 來(lái)源:億速云 閱讀:444 作者:小新 欄目:開發(fā)技術(shù)

小編給大家分享一下解讀tensorflow權(quán)重文件的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

1.解讀tensorflow權(quán)重文件,透過(guò) tf.train.NewCheckpointReader函數(shù)。

2.reader.get_variable_to_shape_map()可以得到權(quán)重文件里面的tensor名稱。

3.reader.get_tensor(key) 可以得到對(duì)應(yīng)tensor的權(quán)重值。

解讀tensorflow權(quán)重文件的方法

import tensorflow as tf
cpktFileName = r'.\models\resnet_v2_152.ckpt'
reader = tf.train.NewCheckpointReader(cpktFileName)
for key in sorted(reader.get_variable_to_shape_map()):
   
    if key.endswith('weights') or key.endswith('biases'):
        keySplits = key.split(r'/')
        print(key)
        print(reader.get_tensor(key))

resnet_v2_152權(quán)重 tensor name解讀

第一,每個(gè)tensor name都以resnet_v2_152開頭

第二,tensor name第二段為block,共有四個(gè)block。與網(wǎng)絡(luò)架構(gòu)有關(guān)。

第三,第三字段為unit,每個(gè)block里面unit數(shù)量不同。與網(wǎng)絡(luò)架構(gòu)有關(guān)。

第四,除了組后的平坦層,第四字段都為bottleneck_v2

第五,第五字段為‘conv1',‘conv2',‘conv3',‘shortcut'

第六,第六字段為‘weights' or ‘biases'

解讀tensorflow權(quán)重文件的方法

補(bǔ)充:tensorflow模型的調(diào)用,權(quán)重查看

以vc版本的tensorpack說(shuō)明

模型調(diào)用

每次運(yùn)行,會(huì)有checkpoint、graph、model生成

1、其中,若文件夾已經(jīng)有checkpoint,且寫有自動(dòng)掉用上次模型,可以在上次的基礎(chǔ)上繼續(xù)訓(xùn)練,否則重新生成,且不能調(diào)用之前的模型,即使已經(jīng)存在

2、每次運(yùn)行會(huì)重新生成graph,即使上次的已經(jīng)存在,因此調(diào)用上次模型與文件夾中是否有g(shù)raph無(wú)關(guān)

權(quán)重變量查看

import numpy as np
import tensorflow as tf
import sys
model = sys.argv[1]
tensor = sys.argv[2]
reader = tf.train.NewCheckpointReader(model)
all_variables = reader.get_variable_to_shape_map()
#reader = pywrap_tensorflow.NewCheckpointReader(ckpt_path)
#param_dict = reader.get_variable_to_shape_map()
for key, val in all_variables.items():
    try:
        print key, val
        #key是網(wǎng)絡(luò)參數(shù)名,val是維度
    except:
        pass
w0 = reader.get_tensor(tensor)
np.save('con1d_w.npy',w0)
print(type(w0))
print(w0.shape)
print(w0[0])

文件內(nèi)容

chekpoint—記錄了保存的最新的checkpoint文件以及其它c(diǎn)heckpoint文件列表。在inference時(shí),可以通過(guò)修改這個(gè)文件,指定使用哪個(gè)model

解讀tensorflow權(quán)重文件的方法

MyModel.meta文件保存的是圖結(jié)構(gòu),meta文件是pb(protocol buffer)格式文件,包含變量、op、集合等。

ckpt文件是二進(jìn)制文件,保存了所有的weights、biases、gradients等變量。在tensorflow 0.11之前,保存在.ckpt文件中。0.11后,通過(guò)兩個(gè)文件保存,如:

MyModel.data-00000-of-00001
MyModel.index

以上是“解讀tensorflow權(quán)重文件的方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI