Pytorch深度学习入门基础(四):TensorBoard 的使用

好久没有更新了,今天继续更新吧!今天就讲一下TensorBoard 的使用

        TensorBoard 可以用来观察 loss 的图像, 方便我们看出在训练到第几步的时候, 对应的 loss 是我们预期所想要的。 如下图所示:
 

       除此之外, TensorBoard 还可以用来展示在训练到第几步的时候显示我们的输入的图像, 如下图所示, 显示我们训练到 2974 步时的图像:
 

一、TensorBoard 的安装

       首先我们打开 anaconda 的终端, 我们进入到 pytorch( 本教程之前自己创建
的虚拟环境) 的虚拟环境当中( 使用指令: conda activate pytorch)

 conda activate pytorch

接下来我们使用指令 pip install tensorBoard 进行安装
如果安装比较慢, 可以使用清华源进行安装, 指令为: pip install tensorBoard -i 换源地址

换源地址有:
* 阿里源: https://mirrors.aliyun.com/pypi/simple/
* 清华源: https://pypi.tuna.tsinghua.edu.cn/simple/
* 豆瓣: http://pypi.douban.com/simple/
* 中科大: https://pypi.mirrors.ustc.edu.cn/simple/

例如:如果使用清华源,那就输入下面这段代码到CMD当中。

pip install tensorBoard -i https://pypi.tuna.tsinghua.edu.cn/simple/

二、创建文件

首先我们先创建一个文件: test_tb.py

from torch.utils.tensorboard import SummaryWriter

         上面这一行代码表示的是从 torch 的常用工具( utils) 里面的 tensorboard 导入 SummaryWriter 类

三、SummaryWriter 类使用

       我们先来查看一下 SummaryWriter 类的官方用法, 上面我们已经讲过了可以使用 juypter 来查看, 在这里我们也可以使用 pycharm 来查看 SummaryWriter 类的官方用法, 方法是: 先按下 ctrl, 再拖动鼠标放到 SummaryWriter, 然后点击鼠标左键, 就可进入查看 SummaryWriter 类的官方用法。

接下来我们创建一个实例, 我们将它对应的事件文件存储到 logs 的文件夹下:

在这个实例当中, 通常我们会使用两个方法, 第一是 add_image(), 第二个是add_scalar(), 最后我们将 writer 进行关闭, 如下图所示:

四、dd_scalar()方法的使用

4.1查看官方文档

      同样我们使用上面的方法, 先看一下 add_scalar()的官方文档。在官方文档当中:
      tag 表示的是本章开头 loss 图标的标题
      scalar_value 表示需要保存的数值
      global_step 表示训练到多少步的时候, 训练对应的 scalar_value 的值是多少

4.2实战练习

         我们来尝试一下使用 add_scalar()来绘制 y=x 的图像吧

运行后发现在文件相同路径下创建了一个 logs 的文件夹, 里面包含着一个事件文件

接下来我们来打开这个事件文件: 打开 pycharm 左下角的终端使用指令

tensorBoard --logdir=logs

logdir=事件文件所在文件夹名

这个文件被 tensorBoard 打开的窗口是在 http://localhost:6006/但是有的时候我们很多人在训练时, 打开的窗口会是同一个就会导致出现问题, 因此这里提供的解决方法是我们可以来指定 tensorBoard 打开的窗口, 使用代码:

 tensorBoard --logdir=logs --port=6007

如下图所示:

接着我们点击蓝色的端口, 就可以显示出我们的图像了, 如下图所示:

五、 add_scalar()实例中的一些问题

         如果我们先运行了上面实例的代码( y=x) , 则会在 logs 文件夹下生成一个事件, 接着我们想画 y=2x 的图像, 但是我们在 add_scalar()当中只对后面的 i 进行修改, 对标题“y=x” 不进行修改, 即 writer.add_scalar("y=x", 2*i, i)

接着我们再一次运行代码, 然后我们再次通过

tensorBoard --logdir=logs--port=6007

打开事件文件, 但是我们会发现图像存在问题, 如下图所示:

这是因为我们在第一次运行后会生成 y=x 的函数, 当我们再运行 y=2x 的时候, 事件会将把 y=x 图像的结尾和 y=2x 的图像相拟合就出现了上图所示的问题。官方提出的解决方案是把生成的 logs 文件夹的事件全部删除重新运行, 并且一个图像对应一个标题, 即可解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

慕奕宸

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

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

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

打赏作者

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

抵扣说明:

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

余额充值