1.通过add_scalar()画图形曲线
首先通过SummaryWriter函数获得该变量writer,并且将生成的文件放在名为logs的文件夹下,代码为:
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("logs")
接着调用add_scalar函数生成需要的曲线图,将生成的图存于上面函数创建的logs文件夹下,其中函数的第一个参数是要生成的图的名字,第二的参数是y轴,第三个参数是x轴。例如生成100以内,y=x的曲线图代码如下:
for i in range(100):
writer.add_scalar("y=x", i, i)
最后需要关闭该变量:
writer.close()
此时生成的曲线图信息我们是无法直接打开的,那么怎么查看改图呢,我们需要打开命令行,或者使用pycharm中的命令行,输入tensorboard --logdir=生成图所在路径。如果是在pycharm命令行打开,那么我们的生成图所在路径直接就是logs,如果是其他目录下则要将完整路径写出。在pycharm命令行中输入如下图: 点击上面的http://localhost:6006/即可查看到输出曲线结果,默认输出是6006端口,按ctrl+c可退出。在一台服务器同时多人使用时可能导致端口被占用,因此我们可以通过给命令再加一个参数实现修改输出端口, 即在命令后写–port=想要修改的端口号。例如我们修改端口号为6007,则命令行输入如下: 点击端口地址后结果如下: 在该页面有对该曲线图的多种用法,不一一列举。
2.通过add_image()观察训练结果
同样,先通过SummaryWriter函数获得该变量writer,并且将生成的文件放在名为logs的文件夹下,代码为:
from torch.utils.tensorboard import SummaryWriter
writer = SummaryWriter("logs")
其次通过调用PIL包中的Image.open的函数获取到PIL类型的图片数据,但因add_image函数中的图片参数为numpy型或是torch.tensor型,因此通过numpy.array函数转化图片类型,然后在调用add_image函数,代码如下:
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
writer = SummaryWriter("logs")
img_path = "data/train/ants_image/0013035.jpg"
img_PIL = Image.open(img_path)
img_array = np.array(img_PIL)
writer.add_image("test", img_array, 1, dataformats="HWC")
其中add_image函数的参数分别代表:第一个参数为输出的图表名;第二个参数为图数据;第三个参数为训练的步骤;即第几步,第四个参数为第二个参数输入的格式是高、宽、通道数。 在命令行输入之前同样命令查看输出图像,如下:
|