close

基本上用之前要用 saver = tf.train.Saver() 宣告一下,通常會宣告在with tf.Session...as sess:前,在with tf.Session...as sess:中執行saver.save(sess, dir)就會把變數內容以及名稱存起來,到時候restore時就會去對應你相同變數名稱以及型態的變數把值放進去

通常seve會有一個checkpoint檔記錄你存了幾次的.ckpt,我們可以跑100step存一次,以免電腦掛機或怎樣,譬如說,跑到一半發現時間不夠交作業必須停止,或是發現結果已經很好了

這邊要注意的有很多點,第一點雖然我們寫的是存一個.ckpt檔,但實際上會存成三個檔案:

1.  model.ckpt.meta: 保存tensorflow計算圖的結構,可以理解為神經網路結構

2. model.ckpt : 保存變數的值

3. checkpoint: 目錄下所有模型文件列表

第二點,save只記錄變數名稱以及其對應的值,並不儲存網路結構等等,所以變數的空殼還是要自己宣告,可以用tensor宣告,或是用numpy宣告,透過reshape轉成tensor

但是呢你要不宣告該變數就把變數值取出來也是可以,或是取值放入不同變數名稱也可以的

例如

第三點,restore不用進行變量初始化,這是因為只是將變量的值,通過已經保存的模型加載進來

 

 

 

題外話:

anaconda的virtualenv就是一個資料夾一個虛擬環境,資歷夾中會包含你在虛擬環境中見的套件等等,當你想用該環境時,就在anaconda promt 用 activate呼叫該環境名稱(資料夾名稱),會看到指令前(base)變成(虛擬環境名稱),接下來用python執行的.py黨都會在該環境設定下面跑

你可以設置很多虛擬環境,以不同資歷夾(名稱)作為分界

 

 

arrow
arrow
    文章標籤
    tensorflow saver
    全站熱搜
    創作者介紹
    創作者 KR 的頭像
    KR

    漫漫長路

    KR 發表在 痞客邦 留言(0) 人氣()