3. TF 程式碼分析初步
3.1 TF總體概述
為了對TF有整體描述,本章節將選取TF白皮書[1]中的示例展開說明,如圖 3.1所示是一個簡單線性模型的TF正向計算圖和反向計算圖。圖中x是輸入,W是引數權值,b是偏差值,MatMul和Add是計算操作,dMatMul和dAdd是梯度計算操作,C是正向計算的目標函式,1是反向計算的初始值,dC/dW和dC/dx是模型引數的梯度函式。
圖 3.1 tensorflow計算流圖示例
以圖 3.1為例實現的TF程式碼見圖 3.2。首先宣告引數變數W、b和輸入變數x,構建線性模型y=W*x+b,目標函式loss採用誤差平方和最小化方法,優化函式optimizer採用隨機梯度下降方法。然後初始化全域性引數變數,利用session與master互動實現圖計算。
圖 3.2 TF線性模型示例的實現程式碼
圖 3.2中summary可以記錄graph元資訊和tensor資料資訊,再利用tensorboard分析模型結構和訓練引數。
圖 3.3是上述程式碼在Tensorboard中記錄下的Tensor跟蹤圖。Tensorboard可以顯示scaler和histogram兩種形式。跟蹤變數走勢可更方便的分析模型和調整引數。
圖 3.3 Tensorboard顯示的TF線性模型引數跟蹤