tensorflow:模型的保存和訓練過程可視化


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

保存模型的方法:

#之前是各種構建模型graph的操作(矩陣相乘,sigmoid操作等...)
saver=tf.train.Saver()#生成saver
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())#先對模型進行初始化
    #然后將數據丟入模型進行訓練blabla
    #訓練完之后,使用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')#會將已經保存的變量值restore到變量中

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

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

流程如下所示:
1.使用tf.scalar_summary來收集想要顯示的變量

2.定義一個summary op,用來匯總多個變量

3.得到一個summary writer,指定寫入路徑

4.通過summary_str=sess.run()

#由之前的各種運算得到此批數據的loss
loss=......
#使用tf.scalar_summary來收集想要顯示的變量,命名為loss
tf.scalar_summary('loss',loss)
#定義一個summary op,用來匯總由scalar_summary記錄的所有變量
merged_summary_op=tf.merge_all_summaries()
#生成一個summary writer對象,需要指定寫入路徑
summary_writer=tf.train.SummaryWriter('/tmp/logdir',sess.graph)
#開始訓練,分批喂數據
for i in range(batch_sum):
    #使用sess.run來得到merged_summary_op的返回值
    summary_str=sess.run(merged_summary_op)
    #使用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