TensorFlow:可视化

在网络训练的过程中,通过Web 端监控网络的训练进度,可视化网络的训练结果对于
提高开发效率是非常重要的。
TensorFlow 提供了一个专门的可视化工具,叫做TensorBoard,他通过TensorFlow 将监控数据写入到文件系统,并利用Web 后端监控对应的文件目录,从而可以允许用户从远程查看网络的监控数据。

TensorBoard 的使用需要训练部分和浏览器交互工作。

一、模型端

在模型端,需要创建写入监控数据的Summary 类,并在需要的时候写入监控数据。首
先通过tf.summary.create_file_writer 创建监控对象,并制定监控数据的写入目录:

# 创建监控类,监控数据将写入log_dir 目录
summary_writer = tf.summary.create_file_writer(log_dir)

我们以监控误差数据和可视化图片数据为例,介绍如何写入监控数据。在前向计算完成后,对于误差这种标量数据,我们通过tf.summary.scalar 函数记录监控数据,并指定时间戳step:

with summary_writer.as_default():
	# 当前时间戳step 上的数据为loss,写入到ID 位train-loss 对象中
	tf.summary.scalar('train-loss', float(loss), step=step)

需要注意的是,TensorBoard 通过字符串ID 来区分不同类别的监控数据,因此对于误差数
据,我们将它命名为”train-loss”,其他类的数据不可写入此对象,防止数据污染。

对于图片类型的数据,通过tf.summary.image 函数写入监控图片数据:

with summary_writer.as_default():
	# 写入测试准确率
	tf.summary.scalar('test-acc', float(total_correct/total),
step=step)
	# 可视化测试用的图片,设置最多可视化9 张图片
	tf.summary.image("val-onebyone-images:", val_images,
max_outputs=9, step=step)

运行模型程序后,相应的数据将写入到指定文件目录中。

二、浏览器端

在监控页面的上端可以选择不同类型数据的监控页面,比如标量监控页面SCALARS,图
片可视化页面IMAGES 等等。对于我们的例子,我们需要监控的训练误差和测试准确率的
曲线在SCALARS 页面可以查看

在 IMAGES 页面,可以查看每个step 的图片可视化效果

除了监控标量数据和图片数据外,TensorBoard 还支持通过tf.summary.histogram 查看张量的数据直方图分布,以及通过tf.summary.text 打印文本信息:

with summary_writer.as_default():
	# 当前时间戳step 上的数据为loss,写入到ID 位train-loss 对象中
	tf.summary.scalar('train-loss', float(loss), step=step)
	# 可视化真实标签的直方图分布
	tf.summary.histogram('y-hist',y, step=step)
	# 查看文本信息
	tf.summary.text('loss-text',str(float(loss)))

在HISTOGRAMS 页面即可查看张量的直方图,在TEXT 页面可以查看文本信息

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南淮北安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值