1. 程式人生 > >tf.xxx與summary有關的函式

tf.xxx與summary有關的函式

tf.xxx與summary有關的函式


Summary的作用

TensorFlow中的summary主要是用於觀察變數、直方圖等一系列變數,然後在Tensorboard中檢視,方便我們視覺化訓練過程。

tf.summary.scalar()

  • 輸出一個Summaryprotocol buffer,它包括一個單一scalar的值.
  • 通常可以用於觀察單一變數的值,如學習率或者損失.

tf.summary.histogram()

  • 輸出一個Summaryprotocol buffer,它包括一個直方圖。
  • 通常可以用於觀察梯度或者權重的分佈,其主要用於資料分佈

tf.summary.merge_all()

  • TensorFlow中的Operations不會被執行,除非你run它或者另外的op依賴於他們的輸出。我們剛剛建立的那些summary的節點對於我們的graph來說是處在外部的,因為圖中沒有op依賴於這些節點。所以為了產生summaries,我們需要執行所有summary的節點。如果手工管理這些節點是枯燥重複的,所以使用tf.summary.merge_all來將它們合併成一個op來產生summary資料。
  • 之後,我們就可以只用執行合併的節點,來產生一個序列化的Summary protocol物件,它包含了在指定步你所有的summary資料。然後我們可以將summary資料通過下面的函式寫入磁碟。

tf.summary.FileWriter()

  • 用於獲取一個FileWriter物件,它會在指定的路徑建立一個event檔案,然後將summaries和events新增進去。
  • 這個新增過程和訓練過程是非同步的,因此不影響訓練速度。