PyTorch-tensorboard

tensorboard是个可视化工具,用于观察神经网络训练过程
SummaryWriter:
首先需要创建一个SummaryWriter示例
在这里插入图片描述

其中有些参数不常用,我们可以只在参数里写上一个训练保存的路径即可
例:writer=SummaryWriter('logs')
我们在SummaryWriter中常用的方法有:
1. add_scalar
2. add_image

add_scalar

add_scalar(tag, scalar_value, global_step=None, walltime=None)
tag (string): 数据名称,不同名称的数据使用不同曲线展示
scalar_value (float): 数字常量值
global_step (int, optional): 训练的 step
walltime (float, optional): 记录发生的时间,默认为 time.time()

例:
创建一个y=x的图像

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

writer=SummaryWriter('logs')

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

如何打开事件文件

打开Anaconda Prompt或者直接在Pycharm中下方的Terminal
先激活PyTorch环境,如果在Terminal中会直接激活,输入tensorboard --logdir=logs

注意:logdir后面是事件文件所在文件夹名

在这里插入图片描述
点击 http://localhost:6006/
PyTorch-tensorboard_第1张图片

如何改变端口

打开Anaconda Prompt或者直接在Pycharm中下方的Terminal
先激活PyTorch环境,如果在Terminal中会直接激活,输入 tensorboard --logdir=logs --port=6007

这里我改成了6007
在这里插入图片描述

add_scalar注意:

若是一个tag训练了多次就会出现多次训练的图像相对拟合的结果
例:如果我在原有的y=x图像中又画出y=2x,就会出现如下的情况
PyTorch-tensorboard_第2张图片
解决方法:
1.换个tag
2.在pycharm左侧中删除对应的logs文件,重新训练y=2x

add_image

add_image(tag, img_tensor, global_step=None, walltime=None, dataformats='CHW')
tag (string): 数据名称
img_tensor (torch.Tensor / numpy.array): 图像数据
global_step (int, optional): 训练的 step
walltime (float, optional): 记录发生的时间,默认为 time.time()
dataformats (string, optional): 图像数据的格式,默认为 'CHW',即 Channel x Height x Width,还可以
是'CHW'、'HWC' 或 'HW' 等

PyTorch-tensorboard_第3张图片
在上图,img_tensor要求是torch.Tensor, numpy.array, or string/blobname类型
所以利用刚学的numpy

from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
writer=SummaryWriter('logs')
image_path="dataset/train/ants/0013035.jpg"
image=Image.open(image_path)
img_array=np.array(image)
writer.add_image('test',img_array,1)

writer.close()

然后运行可能会报错,是因为图像数据的格式可能不同

print(img_array.shape)

利用shape查看,判断出图片格式是’HWC’的
在这里插入图片描述
然后我们在add_image中加入dataformats即可

from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Image
writer=SummaryWriter('logs')
image_path="dataset/train/ants/0013035.jpg"
image=Image.open(image_path)
img_array=np.array(image)
writer.add_image('test',img_array,1,dataformats='HWC')
writer.close()

打开事件文件我们会发现在左上角多了一个IMAGES,里面就是我们输入的图片

PyTorch-tensorboard_第4张图片

你可能感兴趣的:(PyTorch,pytorch,深度学习,python)