您的位置:首页 > 其它

tensorboard详解

2017-10-17 20:20 176 查看

名称域

tensorFlow 图表有两种连接关系:数据依赖和控制依赖。数据依赖显示两个操作之间的tensor流程,用实心箭头指示,而控制依赖用点线表示。

实现原理

Event: 展示训练过程中的统计数据(最值,均值等)变化情况

Image: 展示训练过程中记录的图像

Audio: 展示训练过程中记录的音频

Histogram: 展示训练过程中记录的数据的分布图

具体原理:

在运行过程中,记录结构化的数据

运行一个本地服务器,监听6006端口

请求时,分析记录的数据,绘制

在构建graph的过程中,记录你想要追踪的Tensor

with tf.name_scope('output_act'):
hidden = tf.nn.relu6(tf.matmul(reshape, output_weights[0]) + output_biases)
tf.histogram_summary('output_act', hidden)


Graph的最后要写一句这个,给session回调

merged = tf.merge_all_summaries()


Session 中调用

构造两个writer,分别在train和valid的时候写数据:

train_writer = tf.train.SummaryWriter(summary_dir + '/train',
session.graph)
valid_writer = tf.train.SummaryWriter(summary_dir + '/valid')


这里的summary_dir存放了运行过程中记录的数据,等下启动服务器要用到

构造run_option和run_meta,在每个step运行session时进行设置:

summary, _, l, predictions =
session.run([merged, optimizer, loss, train_prediction], options=run_options, feed_dict=feed_dict)


注意要把merged拿回来,并且设置options

在每次训练时,记一次:

train_writer.add_summary(summary, step)


在每次验证时,记一次:

valid_writer.add_summary(summary, step)


达到一定训练次数后,记一次meta做一下标记

train_writer.add_run_metadata(run_metadata, 'step%03d' % step)


借用各个板块的可视化结果来帮助我们调优模型:

step 1: 查看 graph 结构

step 2:查看 accuracy,weights,biases

step 3: 修改 code

step 4: 选择最优模型

step 5: 用 embedding 进一步查看 error 出处

可视化训练过程代码

tf.histogram_summary()


用来绘制图片, 第一个参数是图表的名称, 第二个参数是图表要记录的变量

tf.summary.histogram(layer_name + '/weights', Weights)


tf.scalar_summary()


Loss 的变化图和之前设置的方法略有不同. loss是在tesnorBorad 的event下面的

tf.summary.scalar('loss', loss)


tf.merge_all_summaries()


方法会对我们所有的 summaries合并到一起.

sess= tf.Session()

merged = tf.summary.merge_all()

writer = tf.summary.FileWriter("logs/", sess.graph)

sess.run(tf.global_variables_initializer())


writer.add_summary


以上这些仅仅可以记录很绘制出训练的图表, 但是不会记录训练的数据。 为了较为直观显示训练过程中每个参数的变化,我们每隔上50次就记录一次结果 , 同时我们也应注意, merged 也是需要run 才能发挥作用的,所以在for循环中写下:

for i in range(1000):
sess.run(train_step, feed_dict={xs:x_data, ys:y_data})
if i%50 == 0:
rs = sess.run(merged,feed_dict={xs:x_data,ys:y_data})
writer.add_summary(rs, i)


tensorboard --logdir logs


程序运行完毕之后, 会产生logs目录 , 使用命令
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tensor board