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线性模型参数跟踪