4 Tensorboard 可视化好帮手
4.1 Tensorboard简介
学会用 Tensorflow 自带的 tensorboard 去可视化我们所建造出来的神经网络是一个很好的学习理解方式.
用最直观的流程图告诉你你的神经网络是长怎样,有助于你发现编程中间的问题和疑问.
通过tensorboard的工具大致可以看到,上节课要显示的神经网络差不多是这样子的:
同时我们也可以展开看每个layer中的一些具体的结构:
4.2 绘制图层与其中的参数
主要用到两个语法:
1. 定义图层:with tf.name_scope() ( 里面写名字,下面用缩进)
2. 定义参数:增加参数变量的属性name
4.2.1 对隐藏层
例如对添加的隐藏层进行画图,最终,layer形式如下:
def add_layer(inputs, in_size, out_size, activation_function=None):
# add one more layer and return the output of this layer
with tf.name_scope('layer'):
with tf.name_scope('weights'):
Weights = tf.Variable(tf.random_normal([in_size, out_size]),name='W')
with tf.name_scope('biases'):
biases = tf.Variable(tf.zeros([1,out_size]) + 0.1,name='b')
with tf.name_scope('Wx_plus_b'):
Wx_plus_b = tf.add(tf.matmul(inputs, Weights),biases)
if activation_function is None:
outputs = Wx_plus_b
else:
outputs = activation_function(Wx_plus_b, )
return outputs
效果如下:(有没有看见刚才定义layer里面的“内部构件”呢?)
4.2.2 loss函数
再例如对loss部分:
# the error between prediciton and real data
with tf.name_scope('loss'):
loss = tf.reduce_mean(
tf.reduce_sum(
tf.square(ys - prediction),
eduction_indices=[1]
))
这句话就是“绘制” loss了, 如下:
4.2.3 train_step部分
with tf.name_scope('train'):
train_step = tf.train.GradientDescentOptimizer(0.1).minimize(loss)
形式都相同。
4.3 保存并执行绘图
保存绘画:tf.summary.FileWriter()运行程序,生成绘画文件
运行绘画1:在CMD中tensorboard –logdir logs设定文件目录
打开Google Chrome: