source tree 递归子模块_TensorFlow 2.0 常用模块2:TensorBoard

文 /  李锡涵,Google Developers Expert

本文节选自《简单粗暴 TensorFlow 2.0》

b26de04a8470f5a747944d97a15d1d14.gif

TensorBoard:训练过程可视化

有时,你希望查看模型训练过程中各个参数的变化情况(例如损失函数 loss 的值)。虽然可以通过命令行输出来查看,但有时显得不够直观。而 TensorBoard 就是一个能够帮助我们将训练过程可视化的工具。

首先在代码目录下建立一个文件夹(如 ./tensorboard )存放 TensorBoard 的记录文件,并在代码中实例化一个记录器:

1
接下来,当需要记录训练过程中的参数时,通过 with 语句指定希望使用的记录器,并对需要记录的参数(一般是 scalar)运行  tf.summary.scalar(name, tensor, step=batch_index) ,即可将训练过程中参数在 step 时候的值记录下来。这里的 step 参数可根据自己的需要自行制定,一般可设置为当前训练过程中的 batch 序号。整体框架如下:
1summary_writer = tf.summary.create_file_writer(

每运行一次 tf.summary.scalar() ,记录器就会向记录文件中写入一条记录。除了最简单的标量(scalar)以外,TensorBoard 还可以对其他类型的数据(如图像,音频等)进行可视化,详见 TensorBoard 文档 。

当我们要对训练过程可视化时,在代码目录打开终端(如需要的话进入 TensorFlow 的 conda 环境),运行:

1

然后使用浏览器访问命令行程序所输出的网址(一般是 http:// 计算机名称:6006),即可访问 TensorBoard 的可视界面,如下图所示:

264b6aee7cf270ecc75b93a0404f5658.png

默认情况下,TensorBoard 每 30 秒更新一次数据。不过也可以点击右上角的刷新按钮手动刷新。

TensorBoard 的使用有以下注意事项:

  • 如果需要重新训练,需要删除掉记录文件夹内的信息并重启 TensorBoard(或者建立一个新的记录文件夹并开启 TensorBoard, --logdir 参数设置为新建立的文件夹);

  • 记录文件夹目录保持全英文。

最后提供一个实例,以前章的 多层感知机模型 为例展示 TensorBoard 的使用:

 1import tensorflow as tf
*  本代码示例调用了先前连载文章中已实现的模块MLP(多层感知机)和MNISTLoader(MNIST数据集加载模块),请访问 https://github.com/snowkylin/tensorflow-handbook/tree/master/source/_static/code 以获取源代码。

福利 | 问答环节

我们知道在入门一项新的技术时有许多挑战与困难需要克服。如果您有关于 TensorFlow 的相关问题,可在本文后留言,我们的工程师和 GDE 将挑选其中具有代表性的问题在下一期进行回答~

在上一篇文章《TensorFlow 2.0 常用模块1:Checkpoint》中,我们对于部分具有代表性的问题回答如下:

Q1:ModuleNotFoundError: No module named 'zh',您好,这个模块是什么呢?谢谢回复。

A:这部分调用了先前连载文章中已实现的代码模块。获取源代码请访问:

  • https://github.com/snowkylin/tensorflow-handbook/tree/master/source/_static/code

Q2:最近想要把 tf1 的 ckpt 迁移到 tf2 上,感觉很麻烦,不仅模型要重写,而且无法 tf2 的 restore 不能用 tf1 的,更关键的是加载除了 logit 层前的层很麻烦,什么时候能把 pytorch 里那些加载方式搞来,我想把 2d 的网络 reshape 成 3d 真的很麻烦。

A:可以考虑使用 tf.compat.v1 来使用 TensorFlow 1.X 的 API 读取在 1.X 版本中保存的内容。

Q3:问 TF 有没有 model interpretation 相关的支持和教程?

A:模型的解释是一个比较宽泛的话题,或许 TensorFlow Extended(TFX)中的一些工具(比如TensorFlow Model Analysis)可以帮助你。参考:

  • https://www.tensorflow.org/tfx/model_analysis/get_started

Q4:有针对多GPU和分布式训练的教程吗?

A:可参考:

  • https://tf.wiki/zh/appendix/distributed.html

  • https://www.tensorflow.org/guide/distributed_training

《简单粗暴 TensorFlow 2.0 》目录

  • TensorFlow 2.0 安装指南

  • TensorFlow 2.0 基础:张量、自动求导与优化器   

  • TensorFlow 2.0 模型:模型类的建立

  • TensorFlow 2.0 模型:多层感知机

  • TensorFlow 2.0 模型:卷积神经网络

  • TensorFlow 2.0 模型:循环神经网络

  • TensorFlow 2.0 模型:Keras 训练流程及自定义组件

  • TensorFlow 2.0 常用模块1:Checkpoint

  • TensorFlow 2.0 常用模块2:TensorBoard(本文)

公众号回复关键字“手册”获取系列内容合集及 FAQ。

410d5204cd3008275efe17260286553b.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值