本节将通过一个简单的 MNIST 手写数字识别的例子,讲解各种类型的数据汇总和展示的方法。这个例子中为了简单和凸显较偏重于 TensorBoard的使用,所以没有使用各种复杂的优化,比如滑动平均等。
首先,还是和之前一样导入一些需要用到的库,并设置一些需要用到的量。存放日志文件的路径为 log dir。
为了在 TensorBoard 中可视化计算图时更好地组织图中的计算节点,也为了在 TensorBoard中可视化其他汇总为图表类型的数据(如 SCALARS、HISTORGRAMS 等)时将这些数据按照节点的方式展现,通常会在一个命名空间中执行数据汇总的操作。
下面定义一个函数 variab le_summaries(),其参数只有一个——var。该函数的作用就是计算传递进来的 var 的平均值、方差值、最大值和最小值,并通过 summary.sealar()函数将计算得到的值汇总为标量数据,以及通过summary.histogram()函数将 var 的值汇总为直方图数据。进行这样的汇总很有必要,因为对于每一层的权重参数和偏置参数我们都希望能够得到可视化的形式。在创建层的 creat_layer()函数中,也确实调用了这个函数进行一些汇总操作。这个函数的定义如下:
之后,我们定义用于创建 MLP 神经网络层的函数 creat