【学习笔记】【Pytorch】二、TensorBoard的使用

学习地址

PyTorch深度学习快速入门教程【小土堆】.

主要内容

一、TensorBoard的安装
作用:在浏览器中打开TensorBoard生成的事件。
二、SummaryWriter类的使用

  • add_scalar()
    作用:常用来绘制train/val loss,观察训练过程中loss的变化,判断模型的好坏。
  • add_image()
    作用:常用来观察训练结果。

一、TensorBoard的安装

conda install tensorboard

作用:在浏览器中打开TensorBoard生成的事件。

二、SummaryWriter类的使用

from torch.utils.tensorboard import SummaryWriter

add_scalar()

注:add就是表示其的作用就是增加,并不能覆盖。

1.代码实现
from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter("logs")  # 指定在 logs 文件夹内生成事件

# y = 2x
for i in range(100):
    writer.add_scalar("y=2x", 2*i, i)

writer.close()

输出:在当前目录下生成一个logs文件夹,里面存放事件“y=2x”的函数
在这里插入图片描述

2.参数说明

函数原型:

def add_scalar(
    self,
    tag,
    scalar_value,
    global_step=None,
    walltime=None,
    new_style=False,
    double_precision=False,
):
  • tag:事件名称
  • scalar_value:y轴
  • global_step:x轴

在这里插入图片描述

3.TensorBoard

打开tensorboard事件:在命令行输入以下命令

tensorboard --logdir=logs --port=6007

tensorboard命令参数说明

  • –logdir=事件文件所在文件夹名(可以使用绝对路径);
  • –port=6007 在服务器上,为防止多人使用同一端口,被占用,可以进行指定端口,也可以不指定。

在这里插入图片描述
在浏览器中打开网址可以查看y=2x图表。

事件不覆盖的解决方法
问题描述:
同一个事件使用两种不同图像函数(即上次训练运行的事件名称的图像函数没有删除,下次训练还运行同一名称的事件,但是图像函数不一样了,不会发生覆盖,并进行拟合)。例如,执行以下代码:
在这里插入图片描述
查看图表:
在这里插入图片描述
解决方法:

  • 1.在logs文件夹删除上次的事件。
  • 2.新建一个新的事件名称。

add_image()

1.代码实现
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image

# 重复代码1(“test”事件,步骤1)
writer = SummaryWriter("logs")
image_path = "data/train/ants_image/0013035.jpg"
img_PIL = Image.open(image_path)
img_array = np.array(img_PIL)  # 对PIL图片进行转换,add_image()不支持PIL类型

print(type(img_array))
print(img_array.shape)

writer.add_image("test", img_array, 1, dataformats="HWC")
writer.close()

# 重复代码2(“test”事件事件,步骤2)
writer = SummaryWriter("logs")
image_path = "data/train/bees_image/16838648_415acd9e3f.jpg"
img_PIL = Image.open(image_path)
img_array = np.array(img_PIL)  # 对PIL图片进行转换,add_image()不支持PIL类型
print(type(img_array))
print(img_array.shape)

writer.add_image("test", img_array, 2, dataformats="HWC")
writer.close()

# 重复代码3(“train”事件事件,步骤1)
writer = SummaryWriter("logs")
image_path = "data/train/bees_image/39747887_42df2855ee.jpg"
img_PIL = Image.open(image_path)
img_array = np.array(img_PIL)  # 对PIL图片进行转换,add_image()不支持PIL类型
print(type(img_array))
print(img_array.shape)

writer.add_image("train", img_array, 1, dataformats="HWC")
writer.close()
2.参数说明

函数原型:

def add_image(
        self, tag, img_tensor, global_step=None, walltime=None, dataformats="CHW"
    ):
  • tag:事件名称
  • img_tensor:图片的类型要是torch.Tensor, numpy.array, or string这三种
  • global_step:第几张图片
  • dataformats=‘CHW’,默认CHW。tensor是CHW,numpy是HWC(H表示高度height,W表示宽度weight,C表示通道channel)
    在这里插入图片描述
3.TensorBoard

TensorBoard输出:
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值