Tensorboard的使用

什么是Tensorboard

在训练过程中我们能希望看到训练的过程怎么样,这时候就可以使用这个模块来实现。他可以显示函数之间的变化过程。

Tensorboard的使用

Summarywriter类

add_scalar

这个类的作用是创建训练日志文件。
Summarywriter(“文件地址”)就可以在目录下生成训练的日志,这个日志可以用来展示成可视化的board
通常使用的是add_scalar()生成绘制的日志。
包含三个参数,tag,y轴,x轴

from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter('logs')

#比如绘制一个y=x*x的训练过程

for x in range(10):

    writer.add_scalar("y=x*x",x*x,x)
writer.close()

运行之后就会在这里面生成一个logs的日志文件夹和内容
image

add_image

读取image的一个函数,在这个函数中,他需要这几个参数,tag(str类型),img,需要是Tensor后者np类型的。dataformats指的是图片的通道,H代表高,w代表宽,3就是三通道。默认是3HW,需要根据图片的类型进行设置。
image
image

其中img的类型如果是使用PIL打开(Image.open)的就是PIL类型,无法使用add_images函数,需要将其转化为np类型,或者其他支持的类型。

1.将PIL转化为np类型
img_PIL = Image.open("Dataset\\hymenoptera_data\\train\\ants\\0013035.jpg")
img_np = np.array(img_PIL)
writer.add_image('testimg',img_np,1, dataformats= 'HWC')
2.直接使用opencv打开的图片就是np类型
import cv2
img_cv = cv2.imread("Dataset\\hymenoptera_data\\train\\ants\\0013035.jpg")
 writer.add_iamge("test", img_cv, 2, dataformts='HWC')

代码及效果为:

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

writer = SummaryWriter('logs')
img_PIL = Image.open("Dataset\\hymenoptera_data\\train\\ants\\0013035.jpg")
img_np = np.array(img_PIL)
img_cv = cv2.imread("Dataset\\hymenoptera_data\\train\\ants\\0013035.jpg")


writer.add_image('testimg',img_cv,2, dataformats= 'HWC')

#比如绘制一个y=x*x的训练过程

for x in range(10):

    writer.add_scalar("y=x*x",x*x,x)
writer.close()

image

绘制board

运行代码后会生成日志文件,在命令行使用命令tensorboard --logdir=目录 --port=端口端口默认是6006.
image

如果生成的标签是相同的,再次绘制时就会出现乱图。就是会增加变化过程。建议就是删除所有的日志文件再次运行或者更改标签。
image
image

posted @ 2024-06-18 13:59  云岛夜川川  阅读(3)  评论(0编辑  收藏  举报