tensorflow: tensorboard 探究

功能模块

ModuleAnnotation
SCALARS记录单一变量的,使用 tf.summary.scalar() 收集构建。
IMAGES收集的图片数据,当我们使用的数据为图片时(选用),使用 tf.summary.image() 收集构建。
AUDIO收集的音频数据,当我们使用数据为音频时(选用)。
GRAPHS构件图,效果图类似流程图一样,我们可以看到数据的流向,使用tf.name_scope()收集构建,最后从ckpt的.meta还原。
DISTRIBUTIONS用于查看变量的分布值,比如 W(Weights)变化的过程中,主要是在 0.5 附近徘徊。
HISTOGRAMS用于记录变量的历史值(比如 weights 值,平均值等),并使用折线图的方式展现,使用tf.summary.histogram()进行收集构建。

Note

  • 别瞎summary image,否则随着迭代次数的增加,log文件会变得超大。

打开方式

法一

  代码运行完成之后,可以用bash脚本一键浏览器访问tensorboard终端:

xdg-open 'http://localhost:6006/#histograms'
tensorboard --logdir=.

法二

  代码运行完成之后,命令行中跳转到代码生成的文件夹中,输入

tensorboard --logdir .

  等待程序反应之后,浏览器访问

localhost:6006

  也可以自己定义端口

demo

这里写图片描述


![](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcwOTA3MTYyMDI5MTkx?x-oss-process=image/format,png)
![这里写图片描述](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcwOTA3MTYyMjAwNTE1?x-oss-process=image/format,png)
![这里写图片描述](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcwOTA3MTYyMDQxNzky?x-oss-process=image/format,png)
![这里写图片描述](https://imgconvert.csdnimg.cn/aHR0cDovL2ltZy5ibG9nLmNzZG4ubmV0LzIwMTcwOTA3MTYyMTAwOTU5?x-oss-process=image/format,png)

源码

  打开终端,执行 bash run.sh即可一键生成 tensorboard log 并自动打开 6006端口

main.py:


log_path = './log'
N = 400

import shutil
try:
    shutil.rmtree(log_path)
except OSError:
    pass

import tensorflow as tf

k = tf.placeholder(dtype=tf.float32)

moving_mean = tf.random_normal(shape=[1000], mean=(5*k), stddev=1)
tf.summary.histogram('normal/moving_mean', moving_mean)

shrinking_mean = tf.random_normal(shape=[1000], mean=0, stddev=1-k)
tf.summary.histogram('normal/shrinking_mean', shrinking_mean)

normal_combined = tf.concat([moving_mean, shrinking_mean], axis=0)
tf.summary.histogram('normal/normal_combined', normal_combined)

gamma = tf.random_gamma(shape=[1000], alpha=k)
tf.summary.histogram('other/gamma', gamma)

poisson = tf.random_poisson(lam=k, shape=[1000])
tf.summary.histogram('other/poisson', poisson)

uniform = tf.random_uniform(shape=[1000], minval=k*10)
tf.summary.histogram('other/uniform', uniform)

all_combined = tf.concat([moving_mean, shrinking_mean, gamma, poisson, uniform], axis=0)
tf.summary.histogram('all_combined', all_combined)

summaries = tf.summary.merge_all()

sess = tf.Session()
writer = tf.summary.FileWriter(log_path)
for step in range(N):
    val = step/float(N)
    merge_op = sess.run(summaries, feed_dict={k:val})
    writer.add_summary(summary=merge_op, global_step=step)
writer.close()

run.sh:


python main.py

xdg-open 'http://localhost:6006/#histograms'
tensorboard --logdir=./

其他

tensorboard的graph:

  1. tf.get_default_graph().get_tensor_by_name("output0/output0:0”),括号里必须是tensor(即必须在node名称后加上’ :0 ’)。
  2. 如果graph中显示的node以 ‘ /(xxx) ’ 结尾,则对应的tensor名字是把该后缀删掉,例如,output0/output0/(output0) 的tensor名是output0/output0:0 。

Note

  • 导入 .py 文件的网络结构时,例如 net = NetworkYours({‘input0’: pts_img}, trainable=False) ,则input node的名称必须去.py文件里找现成的,而不是用tensorboard把graph画出来后再看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值