一、tensorboard学习

小土堆教学视频:https://www.bilibili.com/video/BV1hE411t7RN?spm_id_from=333.788.videopod.episodes&vd_source=6cb513d59bf1f73f86d4225e9803d47b&p=8

1.TensorBoard的安装

  1. 首先要下载tensorboard包:pip install tensorboard

  2. 使用前要导入SummaryWriter类:from torch.utils.tensorboard imort SummaryWriter

    • 何为SummaryWriter?
      image
      官方说明为:它能直接将entries条目写入log_dir所在目录的event files事件文件中去。以供Tensorboard使用。Create a SummaryWriter that will write out events and summaries to the event file.
      使用后会出现以下事件文件:
      image

    • SummaryWriter中的参数及说明
      image
      官方参数说明(以下只截取了一部分参数说明,更多参考官方的writer.py文件):
      image

  3. 创建SummaryWriter的实例

writer=SummaryWriter("logs") #将时间文件存储到logs文件夹下,也可以不写,则写入默认路径

#后续待使用的SummaryWriter的两个方法:
writer.add_image()
writer.add_scalar()

writer.close()

2.add_scalar()方法的使用

用途:常用来绘制train/val loss

  • add_scalar()方法中的参数:
    image
    其中tag对应的是标题;global_step对应的是x轴;scalar_value对应的是y轴

  • 实例:绘制y=3x的图像:

writer=SumarryWriter("logs")
for i in range(100):
	writer.add_scalar("y=3x",i*3,i)

运行成功后,即可在logs目录下看见新出现的事件文件

  • 若要在tensorboard中看见生成的图像
    在treminal中运行tensorboard --logdir=logs (默认端口是6006,可以自行更改)
    之后在命令行中点击生成的浏览器链接,则可以看到生成的图像:
    image

3.add_image()方法的使用

用途:常用来观察训练结果

  • add_image()方法中的参数
    image
    其中img_tensor中显示了此处所要求的数据类型,所以直接使用Image类中的的open()方法打开图片是不行的(因为此时是JpegImageFile类型),详细可见后续代码;global_step是步数

  • 实例:在tensorboard中展示数据集中的图像

import numpy as np
from PIL import Image

img_path="hymenoptera_data/train/ants/24335309_c5ea483bb8.jpg" #这里是自己的数据集中的图片的相对地址
img=Image.open(img_path)  #此时img是JpegImageFile类型,可用print(type(img))查看

#将图片转为numpy格式
img_numpy=np.array(img)

# 此时直接运行如下代码是错误的
# writer.add_image("test",img_numpy,1)
#原因是img_tensor的默认shape应该是(3, H, W),而这里转化后是(H, W, 3),所以还要加上dataformats参数
writer.add_image("test",img_numpy,1,dataformats='HWC')
  • tensorboard中的图像:
    image
posted @ 2025-03-11 16:36  W-Vicky11  阅读(126)  评论(0)    收藏  举报