pytorch——Tensorboard使用

目录

add_scalar()函数

add_image()函数


        Tensorboard是常用的一种可视化的工具,我们对其中的SummaryWriter类进行调用。

        我们可以查阅其相关说明:

pytorch——Tensorboard使用_第1张图片        我们通常使用初始化函数中的第一个参数:文件的名称,也可以不对其进行配置,采用默认。

add_scalar()函数

        使用其中的add_scalar函数,首先查阅说明:

pytorch——Tensorboard使用_第2张图片

tag相当于图像的标题; scalar_value是要保存的数值,相当于纵轴;global_step是在多少步记录scalar_value的值,相当于横轴。

        一个小实例:

from torch.utils.tensorboard import SummaryWriter

writer = SummaryWriter("logs")#创建一个对象

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

writer.close()

运行完之后,在左侧会出现一个logs文件夹,其中就是Tensorboard的事件文件。

pytorch——Tensorboard使用_第3张图片

可以在命令行中输入指令tensorboard --logdir=logs来打开该文件:

pytorch——Tensorboard使用_第4张图片

其中logdir=事件文件所在文件夹名。由运行结果可以看到Tensorboard打开的窗口在主机的6006号。点击就可以看到可视化的结果:

pytorch——Tensorboard使用_第5张图片 若同时有好几个训练,都默认打开6006端口,会出现混乱,可以使用:

tensorboard --logdir=logs --port=6007

 如果我们接着改变了函数,但对tag参数没有改变:

writer.add_scalar("y=2x",3*i,i)

 重新运行代码后,打开TensorBoard刷新会发现:

pytorch——Tensorboard使用_第6张图片

 我们可以将事件文件都删掉重新运行,实现新函数的显示。

add_image()函数

使用其中的add_image()函数,首先查阅说明:

pytorch——Tensorboard使用_第7张图片

tag是标题;img_tensor是图像数据,要注意其类型,参数应符合类型要求;global_step是训练步骤;dataformats是格式设置。

在这里我们将照片添加到项目目录中,并查看照片的格式:

pytorch——Tensorboard使用_第8张图片

可以知道,照片格式PIL.JpegImage并不满足参数的格式要求,需要进行转换。如果我们转换为numpy的array形式,则其shape为HWC(H:高度 W:宽度 C:通道):

pytorch——Tensorboard使用_第9张图片

而我们查阅的add_image()函数相关信息可知,img_tensor默认是CHW,所以需要对dataformats操作。

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

writer = SummaryWriter("logs")#创建一个对象
image_path = "data/train/ants_image/0013035.jpg"#图片的相对路径
img_PIL = Image.open(image_path)
img_array = np.array(img_PIL)#将图像转换为numpy的array类型

writer.add_image("title",img_array,1,dataformats='HWC')#可以通过查阅所得的例子中知道HWC的配置
for i in range(10):
    writer.add_scalar("y=x^2",i**2,2*i)

writer.close()

然后从前面说的命令行进行查看:

pytorch——Tensorboard使用_第10张图片

接着将路径改为另一个图片的路径,将步骤step改为2:

pytorch——Tensorboard使用_第11张图片

接着运行,在TensorBoard刷新进行查看:

pytorch——Tensorboard使用_第12张图片

箭头处可以拖动,查看step1。通过改变title可以实现单独显示。

你可能感兴趣的:(Python,机器学习,深度学习,pytorch,python,pycharm)