【TensorFlow】TensorFlow基礎 —— 模型的保存讀取與可視化方法總結


TensorFlow提供了一個用於保存模型的工具以及一個可視化方案

這里使用的TensorFlow為1.3.0版本

一、保存模型數據

  • 模型數據以文件的形式保存到本地;
  • 使用神經網絡模型進行大數據量和復雜模型訓練時,訓練時間可能會持續增加,此時為避免訓練過程出現不可逆的影響,並驗證訓練效果,可以考慮分段進行,將訓練數據模型保存,然后在繼續訓練時重新讀取;
  • 此外,模型訓練完畢,獲取一個性能良好的模型后,可以保存以備重復利用;

模型保存形式如下:

保存模型數據的基本方法:

save_dir = 'model/graph.ckpt' saver = tf.train.Saver() sess = tf.Session()
#保存模型 saver.save(sess, save_dir) #讀取模型 saver.restore(sess, save_dir)

可以在訓練進行之后保存模型saver.save(sess, save_dir)

已訓練的模型可以在此次訓練或預測前讀取saver.restore(sess, save_dir),

 

 

二、訓練過程可視化方法

TensorFlow提供了一個Tensorboard工具進行可視化,此工具可以將訓練過程中輸出的數據使用Web瀏覽器輸出顯示,該工具需要在控制台啟動;

保存的數據文件如下:

保存訓練數據的基本方法

TensorFlow可以保存與顯示的數據形式:

  1. 標量Scalars
  2. 圖片Images
  3. 音頻Audio
  4. 計算圖Graph
  5. 數據分布Distribution
  6. 直方圖Histograms
  7. 嵌入向量Embeddings

Scalars是常用的可視化數據,如loss值,這里為一個浮點數,在構建TensorFlow數據圖時,使用tf.summary.scalar()定義summary節點,數據圖執行后,此數據將被輸出到文件;

  with tf.name_scope('var'):
  tf.summary.scalar('mean', tf.reduce_mean(var))   tf.summary.scalar('max', tf.reduce_max(var))   tf.summary.scalar('min', tf.reduce_min(var)) 
loss
= tf.reduce_mean(tf.reduce_sum(tf.square((ylabel - yout)),reduction_indices = [1])) tf.summary.scalar('loss', loss)

 同樣輸出為直方圖

hidel1 = tf.matmul(inputData,Weights) + basis tf.summary.histogram('HiddenLayer1', hidel1)

 

在定義好如上節點后,需要進行合並以便運行這些的summary節點,之后使用方法tf.summary.FileWriter()將數據輸出

log_dir = 'tblog/' merged_summary_op = tf.summary.merge_all() summary_writer = tf.summary.FileWriter(log_dir, sess.graph)

 

最后在運行過程中獲取數據並輸出,可以每隔幾次迭代輸出一次數據

epochs = 10000  #訓練次數
for i in range(epochs): sess.run(train) if i % 1000 == 0: print(sess.run(loss)) summary_str = sess.run(merged_summary_op) summary_writer.add_summary(summary_str, i)  #輸出一次數據

 

 啟動Tensorboard

訓練過程中會輸出數據文件,此時可以實時的顯示可視化結果,也可以訓練結束后查看可視化結果;

Tensorboard需要手動啟動,在Windows或Linux環境中的啟動命令:

tensorboard --logdir=

如:tensorboard --logdir=F:\tblog

注:Windows下需要在數據文件的根目錄執行此命令;

 

本機為Windows環境:

在瀏覽器中輸入地址http://DESKTOP-6INT0GT:6006,為了保證兼容性,最好使用Chrome進行可視化;

 

 

結果:

 

同樣可以查看數據圖的可視化結構

 


免責聲明!

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



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