tf模型保存

stackoverflow??的答案

保存變量:

保存變量很簡單,只需定義saver對象然后調(diào)用save函數(shù)就可以

結(jié)果是生成4個文件:

checkpoint:保存一個目錄下所有模型文件列表

t.ckpt.meta:保存網(wǎng)絡(luò)圖結(jié)構(gòu)

t.ckpt.index:?

t.ckpt.data-00000-of-00001:變量文件

注意在實際工程中經(jīng)常會將global_step也保存進去,這樣在讀取文件的時候就需要注意了

讀取文件的文件名變成





復(fù)原變量:

因為meta文件保存了計算圖結(jié)構(gòu),所以在復(fù)原的時候也可以直接利用這個文件,這樣就不用重復(fù)的定義計算圖結(jié)構(gòu)了。

下面示范利用meta文件加載計算圖

保存文件的時候最后對變量做好命名,這樣方便取用


這樣在加載權(quán)值的時候,即使不重新定義計算圖,只需要知道計算幾點的名稱,也一樣能夠得到節(jié)點的圖結(jié)構(gòu)

將變量與結(jié)構(gòu)存在一個文件中(.pb文件)

在實際工程中,網(wǎng)絡(luò)訓(xùn)練好后就只需要跑前向預(yù)測就行,那么一些保存變量,初始化的部分就沒有用了,但是假如用上面的方法會保存全部的計算圖結(jié)構(gòu)。

比如保存一個神經(jīng)網(wǎng)絡(luò)的最后一層輸出節(jié)點 y_score,在運行的時候只需要加載出這個節(jié)點的輸出張量,就可以直接運行前向預(yù)測,而與y_score無關(guān)的節(jié)點信息將不會被保存

下面介紹一種將變量和結(jié)構(gòu)存在一個文件中的方法

保存成 .pb文件

這里要注意的是:

保存的節(jié)點add_v3會保存節(jié)點v1,v2因為需要這些節(jié)點運算得出add_v3,但是不會保存mul_v4因為不需要這個節(jié)點就能得到add_v3的值

但是假如為保存的節(jié)點為 ['mul_v4']的話 add_v3也會被保存,因為需要這個節(jié)點的信息才能計算出'mul_v4'節(jié)點

讀取 .pb文件

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容