tensorboard试用及bug解决

来源:互联网 发布:js实现三级下拉菜单 编辑:程序博客网 时间:2024/06/06 11:47

今天尝试了下tensorflow自带的tensorboard,简单又好用啊。
大体3步:
(1)标识要记录的tensor,常用的两种tf.summary.scalar('scalar-name', scalar-value)用于记录标量,tf.summary.histogram('tensor-name', tensor-value)用来记录张量。还有其他类型,如图片等。使用如下:

tf.summary.scalar("accuracy", accuracy)tf.summary.histogram( "weight", W)

(2)启动log文件
代码如下:

merged = tf.summary.merge_all()  # 这样,直接将merged写入log文件,就能把之前每个summary标记的变量都写了,十分方便summary_writer = tf.summary.FileWriter('./mnist_logs', sess.graph)#第二个参数可选,是否画计算图

(3)写log
训练过程的数据可能十分庞大,总要有选择的写,这步就是告诉tensorflow写哪步的数据。代码如下:

if (i+1)%100==0:  #每100步        outputs, mergeRes = sess.run([accuracy, merged], feed_dict = {_X:batch[0], y:batch[1], batch_size:_batch_size, keep_prob:1.0})        print "Step %d, Iter %d, Accuracy:%f"%(i+1, mnist.train.epochs_completed, outputs)        summary_writer.add_summary(mergeRes, i) # 如果不merge的话,这里就要挨个写之前tf.summary.scalar或者其summary的值

二、遇到的问题
启动tensorflow后,发现了问题,

python/_pywrap_tensorflow.so: undefined symbol: PyBytes_AsStringAndSize

上网上找,最后发现了解决办法:
1. sudo pip install tensorflow.tensorboard
而不是单独装tensorboard
2. python3 /usr/local/lib/python3.4/dist-packages/tensorboard/main.py --logdir=./logs
这个新测可用,但这个main.py依tensorflow的版本不同,文件名有变化,有时叫tensorboard.py有时main.py,而位置有可能也会变。
最后,附上scalar和histogram的图。tensoflow的图表确实做得好啊。
这里写图片描述

这里写图片描述