0°

PyTorch 自带 TensorBoard 使用教程

大家都知道,PyTorch 从 1.2.0 版本开始,正式自带内置的 Tensorboard 支持了,我们可以不再依赖第三方工具来进行可视化。

本文将介绍 PyTorch 1.2.0 中自带 Tensorboard 的基本使用方法。

安装

PyTorch 的版本需要 1.2.0 :

然后安装 Tensorboard 1.14 :

安装完成后,应该可以引入响应包:

上面的 warning 可以忽略。

引入相应的 Writer

要使用 Tensorboard 需要在 Python 代码中引入 Writer 类,并定义输出路径:

如果输出路径不存在会被自动创建。

运行 Tensorboard

在命令行中运行下列命令启动 Tensorboard:

请将命令中相应的路径和端口号改成自己需要的即可。

使用方法

我们这里用 Fashion-MNIST 数据库来做示范,展示一下 Tensorboard 的基本使用方法。Fashion-MNIST 的数据库可以从这里下载。

这里的神经网络结构非常简单,仅做示范用,包含两个卷积层,两个全连接层,输出 10 个分类,激活函数是 ReLU:

记录 Scalars

我们常用的 loss、accuracy 等都是数值,我们在 Tensorboard 中记录数值的方法也很简单:

其中 tag 是这个常数值所属的标签(比如 training_loss 等)。常用的一个方法是将 tag 值设置为 section/plot 的格式,这样 Tensorboard 会按照 section 来给结果分组(下面有例子)。

global_step 是一个整数,通常是曲线图里的 x 轴,如果不设置则默认一直为 0。注意这里是不存在覆盖的,就是对于同一个 global_step 值,新的值不会覆盖旧的值,而是会同时画到图上。

walltime 就是记录的时间戳,默认是系统当前时间 time.time()

对于 Fashion-MNIST 数据集,我们主要记录 Training 和 Testing 的 loss,以及 Testing Accuracy:

输出结果如下:

记录图像

记录图像的语法为:

这里的 tag 含义和 Scalar 中一样,global_step 更像是给图像的一个标签。

我们的例子中,首先将多张图像制作成网格拼图,然后输出到 Tensorboard 中:

输出结果如下:

可以利用 global_step 来输出训练过程每个 epoch 的图像,这样可以有一个过程中的对比。

记录直方图 Histogram

记录直方图的语法为:

同样 tag 的含义还是一样,global_step 这里表现为一系列直方图叠加排列在一起的序列,values 可以是一系列数值,也可以是 numpy array。

总结

当然,PyTorch 内置的 Tensorboard 还有很多缺点,比如经常会画不出网络结构图,相信在未来的版本中会越来越完善。

除此以外,还有第三方工具可以实现可视化,见下列参考文章:

PyTorch入门实战教程
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论