TensorBoard 一行代码实现指标可视化

TensorBoard 一行代码实现指标可视化

持续创作,加速生长!这是我参与「日新方案 10 月更文应战」的第9天,点击检查活动概况


深度学习模型,咱们会有各种指标以及loss。想要可视化怎样办?初学者肯定是学的用matplotlib自己画。尽管自己画也行。可是费事啊,有没有东西能够直接帮咱们可视化?

有的。pytorch和tensorflow都有一个TensorBoard

讲一下pytorch中怎样用:

官网文档:torch.utils.tensorboard — PyTorch 1.12 documentation


安装

pytorch 版别1.2以上才开端支撑tensorboard,之前的版别不支撑嗷。

pip install tensorboard

代码中

在代码中导入tensorboard

from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter('你要存文件的地址')
# 用完以后记得销毁
writer.close()

这一步是把实例化一个writer。

待会儿tensorboard代码运转的时候会把你想存储的数据丢尽这个文件夹里。然后你在终端输入指令便是从这个文件夹里取出数据运用浏览器显示。

之后便是非常简略的事情了,在你练习过程的epoch迭代过程中加上你要监督的参数。

add_scalar(tag, scalar_value, global_step=None, walltime=None, new_style=False, double_precision=False)

你要管的参数只要

  • tag(string) – 起个名
  • scalar_value(float or string/blobname) –你要保存的值。
for epoch in range(steps)
    ...
    loss = ...
    writer.add_scalar('Loss', loss, epoch)

这样你就能够获得一个loss是x轴,epoch为y轴的数据。

之后检查便是运用终端输入指令

tensorboard --logdir=./path/to/the/folder --port xxxx

找一个空端口就行了。不必非要设置端口,不加--port xxx默认是6006,,然后去浏览器打开localhost+端口号即可。

找个代码操作一下

就用这个文章的代码吧。这是一个能够跑通的短代码。

代码实现MNLM | word embedding开山之作 – ()

进入文章,拉倒最底下复制完整代码,丢到你的IDE中。

看一下哦。这是能够运转的对吧。

TensorBoard 一行代码实现指标可视化

找到练习那一段代码。在练习阶段迭代那里加上我的loss。我是直接把数据保存在当时文件下的./log里边了。

TensorBoard 一行代码实现指标可视化

TensorBoard 一行代码实现指标可视化

运转一下,然后能够看到当时目录多出来一个log文件夹。

在当时文件夹下打开终端,输入指令tensorboard --logdir=./log --port xxxx

前边自定义端口就写上,前边没自定义端口就不必写--port xxxx

然后咱们就能够看到已经生成的loss图画了。

TensorBoard 一行代码实现指标可视化

弥补

如果你想看多个参数,多个参数在同一个图上显示,就运用

add_scalars(main_tag, tag_scalar_dict, global_step=None, walltime=None)

多个参数用字典传入。

for i in range(100):
    writer.add_scalars('run_14h', {'xsinx':i*np.sin(i/r),
                                    'xcosx':i*np.cos(i/r),
                                    'tanx': np.tan(i/r)}, i)

TensorBoard 一行代码实现指标可视化


需要其他功能的我们能够看文档继续深入学习。