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文件
