Tensorboard的简单实用
核心的写法如下:
例子1
with tf.name_scope('loss'):
loss = tf.reduce_mean(tf.reduce_sum(tf.square(ys-product),reduction_indices=[1]));
例子2
#定义添加层的方法
def add_layer(inputs,in_size,out_size,activation_function=None):
with tf.name_scope('layer'):
with tf.name_scope('Wegihts'):
Wegihts = 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.matmul(Wegihts,inputs)+ biases;
if activation_function is None:
output = Wx_plus_b;
else:
output = activation_function(Wx_plus_b);
return output;
将结果输出到某个文件使用如下代码:
sess = tf.Session();
#tf.train.SummaryWriter 又一个被废弃的方法
writer = tf.summary.FileWriter("logs/",sess.graph);
编译完成后,使用在控制台,切换到logs对应的父文件夹内,然后运行
tensorboard --logdir=logs
注意,如果是通过Anaconda安装的Tensorflow,相当于是安装了一个tensorflow的虚拟机。因此,要以管理员方式运行Anaconda prompt后,激活Tensorflow环境。最后再切换到logs目录下,然后才是运行tensorboard --logdir=logs.
运行后,可以在浏览器中打开控制台提示的网址,即出现神经网络的层次结构。如下图所示
每一层如下图所示
记录数据变化,可以使用如下方法
tf.summary.histogram(lay_name+'/biases',biases);
loss误差值的记录,使用如下代码
tf.summary.scalar('loss',loss);
在需要记录的时候,都需要运行如下代码,用于生成最新的数据信息。
merge = tf.summary.merge_all();
result = sess.run(merge,feed_dict={xs:x_data,ys:y_data});
writer.add_summary(result,i);
最终会形成一个如下图所示的图表
1,loss
2,其他historgram
目前还看不懂这些图表的含义,只能先放着,等以后慢慢理解。