tensorflow筆記:模型的保存與訓練過程可視化


tensorflow筆記系列: 
(一) tensorflow筆記:流程,概念和簡單代碼注釋 
(二) tensorflow筆記:多層CNN代碼分析 
(三) tensorflow筆記:多層LSTM代碼分析 
(四) tensorflow筆記:常用函數說明 
(五) tensorflow筆記:模型的保存與訓練過程可視化 
(六)tensorflow筆記:使用tf來實現word2vec


保存與讀取模型

在使用tf來訓練模型的時候,難免會出現中斷的情況。這時候自然就希望能夠將辛辛苦苦得到的中間參數保留下來,不然下次又要重新開始。好在tf官方提供了保存和讀取模型的方法。

保存模型的方法:

# 之前是各種構建模型graph的操作(矩陣相乘,sigmoid等等....) saver = tf.train.Saver() # 生成saver with tf.Session() as sess: sess.run(tf.global_variables_initializer()) # 先對模型初始化 # 然后將數據丟入模型進行訓練blablabla # 訓練完以后,使用saver.save 來保存 saver.save(sess, "save_path/file_name") #file_name如果不存在的話,會自動創建

 

將模型保存好以后,載入也比較方便,如下所示:

saver = tf.train.Saver() with tf.Session() as sess: #參數可以進行初始化,也可不進行初始化。即使初始化了,初始化的值也會被restore的值給覆蓋 sess.run(tf.global_variables_initializer()) saver.restore(sess, "save_path/file_name") #會將已經保存的變量值resotre到 變量中。

 

 

簡單的說,就是通過saver.save來保存模型,通過saver.restore來加載模型


使用tensorboard來使訓練過程可視化

tensorflow還提供了一個可視化工具,叫tensorboard.啟動以后,可以通過網頁來觀察模型的結構和訓練過程中各個參數的變化。如下圖所示

選區_059.png-12.7kB

關於如何合理清楚的顯示網絡結構,我目前還不太搞得清楚,而且目前看來也不是太重要;但是要將訓練的過程可視化還是比較方便的。簡單的說,流程如下所示:

  • 使用tf.scalar_summary來收集想要顯示的變量
  • 定義一個summury op, 用來匯總多個變量
  • 得到一個summy writer,指定寫入路徑
  • 通過summary_str = sess.run()
# 1. 由之前的各種運算得到此批數據的loss loss = ..... # 2.使用tf.scalar_summary來收集想要顯示的變量,命名為loss tf.scalar_summary('loss',loss) # 3.定義一個summury op, 用來匯總由scalar_summary記錄的所有變量 merged_summary_op = tf.merge_all_summaries() # 4.生成一個summary writer對象,需要指定寫入路徑,例如我這邊就是/tmp/logdir summary_writer = tf.train.SummaryWriter('/tmp/logdir', sess.graph) # 開始訓練,分批喂數據 for(i in range(batch_num)): # 5.使用sess.run來得到merged_summary_op的返回值 summary_str = sess.run(merged_summary_op) # 6.使用summary writer將運行中的loss值寫入 summary_writer.add_summary(summary_str,i)

 

 

接下來,程序開始運行以后,跑到shell里運行

$ tensorboard --logdir /tmp/logdir

 

 

開始運行tensorboard.接下來打開瀏覽器,進入127.0.0.1:6006 就能夠看到loss值在訓練中的變化值了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM