TensorBoard的使用(二)

本节主要记录 TensorBoard 中 add_image 方法的使用,用于在训练过程中可视化图像数据(如输入图片、特征图等)。

1. add_image()

add_image()用于将图像数据写入到TensorBoard的日志文件中

参数说明

  • tag (string): 数据标识符,类似图片的标题。
  • img_tensor (torch.Tensor, numpy.array, or string/blobname): 图像数据。
  • global_step (int): 全局步数(x轴),通常对应 Epoch 或 Iteration。
  • dataformats (string): 图像数据的维度格式(非常重要)。
    • 默认格式为 CHW (Channel, Height, Width)。
    • 常见 OpenCv 或 PIL 读取转 Numpy 后的格式为 HWC (Height, Width, Channel)。
    • 注意: 如果数据格式不匹配,需要显式指定该参数,否则会报错或显示花屏。

2. 实战代码

通常使用PIL或者OpenCV读取照片,然后转换为numpy.arrary传给TensorBoard

接这上节的代码

==步骤==

  1. 利用 PIL.Image 读取本地图片。
  2. 将 PIL 对象转换为 numpy.array
  3. 查看数组形状 shape,确定 dataformats
  4. 调用 writer.add_image
from torch.utils.tensorboard import SummaryWriter
import cv2
writer = SummaryWriter("logs")
img_path = "data/train/ants_image/5650366_e22b7e1065.jpg"
img = cv2.imread(img_path)
writer.add_image('test',img,1,dataformats="HWC")
writer.close()

3. 启动TensorBoard面板

  • 命令行启动:

    tensorboard --logdir=logs
    • --logdir指定了之前在SummaryWriter中设置的日志文件夹名称。
  • 指定端口(可选):如果默认端口6006被占用,可使用--port=6007指定其他端口

  • 查看结果:命令运行成功后,点击终端显示的链接(通常是 http://localhost:6006)即可在浏览器中看到可视化的图表。

image-20260112135337461