Note on tensorflow(三)Get startd on Tensorboard

来源:互联网 发布:奥拉朱旺数据统计 编辑:程序博客网 时间:2024/06/07 23:04

Tensorboard

Tensorboard是tensorflow大受欢迎的一个很重要的原因,至少我本人愿意使用tensorflow有很大一部分原因是来自于它。
它的主要功能, 归结到一点, 就是训练过程的可订制可视化。

使用tensorboard分为以下几个步骤:
1. 在build graph时配置需要可视化的内容
2. 创建FileWriter
2. 在run graph时加入相关的输出项, 并将输出项通过FilterWriter保存
3. 启动tensorboard

相关的接口在tf.summary包里。
下面仍以线性回归为例, 可视化loss的学习曲线。

#encoding=utf-8import tensorflow as tfimport numpy as np# ==========================# build graph# ==========================# inputx = tf.placeholder(tf.float32, name = 'x')y = tf.placeholder(tf.float32, name = 'y')# parametersW = tf.Variable([.3], tf.float32)b = tf.Variable([-.3], tf.float32)#outputlinear_model = W * x + b# losssquared_deltas = tf.square(linear_model - y)loss = tf.reduce_sum(squared_deltas)# SGDoptimizer = tf.train.GradientDescentOptimizer(0.01)train = optimizer.minimize(loss)# 将loss加入summary。除了scalar, 还可以有其它类型tf.summary.scalar('squred_loss', loss)        # training datax_train = [1,2,3,4]y_train = [0,-1,-2,-3]sess = tf.Session()# 创建FilterWriter, 它负责将传入的数据写入event 文件。merged = tf.summary.merge_all()train_writer = tf.summary.FileWriter('/tmp/tf_test', sess.graph)tf.global_variables_initializer().run(session = sess)for i in range(1000):    summary, _, curr_W, curr_b, curr_loss  = sess.run([merged, train, W, b, loss], {x:x_train, y:y_train})    if i %200 == 0:        print("Iteration %d, W: %s, b: %s, loss: %s"%(i, curr_W, curr_b, curr_loss))    train_writer.add_summary(summary, i)

运行tensorboard

上面的代码运行完之后, 在终端里执行命令:

tensorboard --logdir=/tmp/tf_test

然后在浏览器中打开提示的地址即可。

关键代码总结

tf.summary.scalar('squred_loss', loss) ...merged = tf.summary.merge_all()train_writer = tf.summary.FileWriter('/tmp/tf_test', sess.graph)...summary, _, curr_W, curr_b, curr_loss  = sess.run([merged, train, W, b, loss], {x:x_train, y:y_train})...train_writer.add_summary(summary, i)
0 0