打印tensorflow恢復模型中所有變量與操作節(jié)點方式
我就廢話不多說了,大家還是直接看代碼吧!
#參數(shù)恢復
self.sess=tf.Session()
saver = tf.train.import_meta_graph(os.path.join(model_fullpath,'model.ckpt-7.meta'))
module_file = tf.train.latest_checkpoint(model_fullpath)
saver.restore(self.sess, module_file)
variable_names = [v.name for v in tf.trainable_variables()]
variable_names = [v.name for v in tf.global_variables()]
values = self.sess.run(variable_names)
i=0
for k, v in zip(variable_names, values):
i+=1
if k.find('encode')!=-1:
print(f"第 {i} 個variable")
print("Variable: ", k)
print("Shape: ", v.shape)
print(v)
graph = tf.get_default_graph()
all_ops = graph.get_operations()
for el in all_ops:
print(el.name)
輸出結(jié)果:

補充知識:TensorFlow:.ckpt文件與.ckpt.meta和.ckpt.index以及.pb文件之間的關(guān)系是什么?
再使用 tf.train.Saver() 保存參數(shù)通常會生成以下文件

那么這些文件具體是什么呢?
.ckpt文件:是舊版本的輸出saver.save(sess),相當于你的.ckpt-data
“checkpoint”:文件僅用于告知某些TF函數(shù),這是最新的檢查點文件。
.ckpt-meta:包含元圖,即計算圖的結(jié)構(gòu),沒有變量的值(基本上你可以在tensorboard / graph中看到)。
.ckpt-data:包含所有變量的值,沒有結(jié)構(gòu)。
.ckpt-index:可能是內(nèi)部需要的某種索引來正確映射前兩個文件,它通常不是必需的
你可以只用 .ckpt-meta 和恢復一個模型 .ckpt-data
要在python中恢復模型,您通常會使用元數(shù)據(jù)和數(shù)據(jù)文件(但您也可以使用該.pb文件):
saver = tf.train.import_meta_graph(path_to_ckpt_meta) saver.restore(sess, path_to_ckpt_data)
該.pb文件可以保存您的整個圖表(元+數(shù)據(jù))
要在c ++中加載和使用(但不訓練)圖形,您通常會使用它來創(chuàng)建freeze_graph,它會.pb從元數(shù)據(jù)和數(shù)據(jù)創(chuàng)建文件。
要小心,(至少在以前的TF版本和某些人中)py提供的功能freeze_graph不能正常工作,所以你必須使用腳本版本。
以上這篇打印tensorflow恢復模型中所有變量與操作節(jié)點方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python爬取奶茶店數(shù)據(jù)分析哪家最好喝以及性價比
這篇文章主要介紹了用Python告訴你奶茶哪家最好喝性價比最高,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧2022-09-09
詳解Python中高階函數(shù)(map,filter,reduce,sorted)的使用
高階函數(shù)就是能夠把函數(shù)當成參數(shù)傳遞的函數(shù)就是高階函數(shù),換句話說如果一個函數(shù)的參數(shù)是函數(shù),那么這個函數(shù)就是一個高階函數(shù)。本文為大家詳細講解了Python中常用的四個高階函數(shù),感興趣的可以了解一下2022-04-04
Python requests timeout的設(shè)置
這篇文章主要介紹了Python requests timeout的設(shè)置,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04
Python中字符串,列表與字典的常用拼接方法總結(jié)
有時在數(shù)據(jù)處理時,需要對數(shù)據(jù)進行拼接處理,比如字符串的拼接、列表的拼接等,本文主要是介紹了字符串、列表、字典常用的拼接方法,希望對大家有所幫助2024-02-02
使用matplotlib修改坐標軸,將y軸的間距設(shè)置為某一個值
這篇文章主要介紹了使用matplotlib修改坐標軸,將y軸的間距設(shè)置為某一個值方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02

