基于tensorflow權(quán)重文件的解讀
1.解讀tensorflow權(quán)重文件,透過 tf.train.NewCheckpointReader函數(shù)。
2.reader.get_variable_to_shape_map()可以得到權(quán)重文件里面的tensor名稱。
3.reader.get_tensor(key) 可以得到對應(yīng)tensor的權(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解讀
第一,每個tensor name都以resnet_v2_152開頭
第二,tensor name第二段為block,共有四個block。與網(wǎng)絡(luò)架構(gòu)有關(guān)。
第三,第三字段為unit,每個block里面unit數(shù)量不同。與網(wǎng)絡(luò)架構(gòu)有關(guān)。
第四,除了組后的平坦層,第四字段都為bottleneck_v2
第五,第五字段為‘conv1',‘conv2',‘conv3',‘shortcut'
第六,第六字段為‘weights' or ‘biases'
補充:tensorflow模型的調(diào)用,權(quán)重查看
以vc版本的tensorpack說明
模型調(diào)用
每次運行,會有checkpoint、graph、model生成
1、其中,若文件夾已經(jīng)有checkpoint,且寫有自動掉用上次模型,可以在上次的基礎(chǔ)上繼續(xù)訓(xùn)練,否則重新生成,且不能調(diào)用之前的模型,即使已經(jīng)存在
2、每次運行會重新生成graph,即使上次的已經(jīng)存在,因此調(diào)用上次模型與文件夾中是否有g(shù)raph無關(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文件以及其它checkpoint文件列表。在inference時,可以通過修改這個文件,指定使用哪個model
MyModel.meta文件保存的是圖結(jié)構(gòu),meta文件是pb(protocol buffer)格式文件,包含變量、op、集合等。
ckpt文件是二進制文件,保存了所有的weights、biases、gradients等變量。在tensorflow 0.11之前,保存在.ckpt文件中。0.11后,通過兩個文件保存,如:
MyModel.data-00000-of-00001 MyModel.index
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python pycharm最新版本激活碼(永久有效)附python安裝教程
PyCharm是一個多功能的集成開發(fā)環(huán)境,只需要在pycharm中創(chuàng)建python file就運行python,并且pycharm內(nèi)置完備的功能,這篇文章給大家介紹python pycharm激活碼最新版,需要的朋友跟隨小編一起看看吧2020-01-01PyTorch詳解經(jīng)典網(wǎng)絡(luò)ResNet實現(xiàn)流程
ResNet全稱residual neural network,主要是解決過深的網(wǎng)絡(luò)帶來的梯度彌散,梯度爆炸,網(wǎng)絡(luò)退化(即網(wǎng)絡(luò)層數(shù)越深時,在數(shù)據(jù)集上表現(xiàn)的性能卻越差)的問題2022-05-05tensorflow基于Anaconda環(huán)境搭建的方法步驟
本文主要介紹了tensorflow基于Anaconda環(huán)境搭建的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02python 利用opencv實現(xiàn)圖像網(wǎng)絡(luò)傳輸
這篇文章主要介紹了python 如何利用opencv實現(xiàn)圖像網(wǎng)絡(luò)傳輸,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-11-11使用numpy實現(xiàn)矩陣的翻轉(zhuǎn)(flip)與旋轉(zhuǎn)
這篇文章主要介紹了使用numpy實現(xiàn)矩陣的翻轉(zhuǎn)(flip)與旋轉(zhuǎn),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06Python+tkinter自定義實現(xiàn)文件選擇按鈕
這篇文章主要為大家詳細介紹了如何利用Python和tkinter自定義實現(xiàn)簡單的文件選擇按鈕和顏色選擇按鈕,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-10-10