TensorBoard的使用

发布时间 2023-08-09 16:56:45作者: ydky

TensorBoard是一个可视化工具,可以查看每个阶段的输出结果。

工作流程:1.将代码运行过程中关心的数据保存在一个文件夹中(writer完成)2.读取这个文件夹中的数据,用浏览器显示出来(命令行运行tensorboard完成)

SummaryWriter类的使用

help:将数据以特定的格式存储到事件文件夹中。

常用方法:

add_scalar(self, tag, scalar_value, global_step=None, walltime=None)方法参数说明:

tag字符串类型,表示标题;

scalar_value相当于y轴的值;

global_step相当于x轴的值int型;

最后一个参数是可选参数

add_image(self, tag, img_tensor, global_step=None, walltime=None, dataformats='CHW')方法参数说明:

部分参数与上相同;

img_tensor表示图像的数据类型,需要是torch.Tensornumpy.array 或者 string/blobname;

最后一个参数是图像的尺寸格式,默认是3HW(3表示通道C),如果不是默认的则需要用最后一个参数进行说明。

 

在pycharm的terminal终端输入命令tensorboard --logdir=事件文件所在文件夹名,默认使用6006端口,更改端口可以使用命令tensorboard --logdir=事件文件所在文件夹名 --port=6007,通过浏览器查看可视化结果。

代码实现:

1.实例化SummaryWriter对象,保存到logs文件夹下

writer = SummaryWriter("logs")

2.调用所需要的方法

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

3.关闭writer

writer.close()

实现读取数据集中的图片或自己作图通过TensorBoard展示出来:

from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image

writer = SummaryWriter("logs")
img_path = "dataset/train/bees/16838648_415acd9e3f.jpg"
#读取的图像数据类型是JpegImageFile
img_PIL = Image.open(img_path)
#从PIL到numpy,需要在add_image()中指定shape中的每一个数字/维表示的含义
img_array = np.array(img_PIL)
print(type(img_array))
print(img_array.shape)  #此处格式为(H, W, C)高度宽度通道形式

writer.add_image("test", img_array, 2, dataformats='HWC')
# y = 2x
#当标题不变时,将2x变为3x则会发生混乱,可以删除之前的事件文件,即可正常显示
for i in range(100):
   writer.add_scalar("y=2x", 3*i, i)

#注意要记得close
writer.close()

在命令行中启动TensorBoard

#命令行运行命令
tensorboard --logdir=logs