Pytorch之Tensorboard(可视化)

在torch里使用tensorboard是在这里

from torch.utils.tensorboard import SummaryWriter

Pytorch之Tensorboard(可视化)_第1张图片

然后如果进入后打开structure可以查看该包内的对象和方法,比如说比较常用的这几个方法
add_scalar
add_image
add_graph

Pytorch之Tensorboard(可视化)_第2张图片

说回来,想要使用tensorboard,先实例化,指定event文件的文件夹

writer = SummaryWriter("logs")

然后先说一下之后能用的格式Image、list、array、tensor以及这几个数据格式之间的转化关系(从行转列),
不过说一下哈,这个是在没有工具的前提下,有工具还有别的方法

list/PIL_image numpy.array torch.tensor
list/PIL_image ndarray = np.array(list) tensor=torch.Tensor(list)
numpy.array list = ndarray.tolist() tensor = torch.from_numpy(ndarray)
torch.tensor 先转numpy再转list list = tensor.numpy().tolist() ndarray = tensor.numpy()

*gpu上的tensor不能直接转为numpy

ndarray = tensor.cpu().numpy()

cv2和PIL.Image的转换其实是numpy.array和PIL的转换
PIL.Image和plt.imshow的格式都是rgb,而cv2是bgr,要做格式转换

好了,说完了回来,给tensorboard添加图像,先加载再说

image_path = 'dataset/cat_vs_dog/train/cat/cat.0.jpg' # 图像目录
img_PIL = Image.open(image_path)  # 打开图片文件(PILimage)
img_array = np.array(img_PIL)    # 转成numpy格式

由于图片读取是HWC的,tensorboard默认是CHW的,

print(type(img_array))
print(img_array.shape)  # (374, 500, 3)

需要调整一下通道顺序

writer.add_image('cat', img_array, 1, dataformats='HWC')

以上参数分别是:标签名称、图像索引、图像格式,可以通过ctrl+q仔细查看

Pytorch之Tensorboard(可视化)_第3张图片

此外,添加一个plot ,使用add_scalar方法

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

Pytorch之Tensorboard(可视化)_第4张图片

最后记得关闭summarywriter,当然,不关也没人管

writer.close()

最后完整的代码

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

writer = SummaryWriter("logs")

image_path = 'dataset/cat_vs_dog/train/cat/cat.0.jpg' # 图像目录
img_PIL = Image.open(image_path)  # 打开图片文件(PILimage)
img_array = np.array(img_PIL)    # 转成numpy格式
print(type(img_array))
print(img_array.shape)  # (374, 500, 3)
writer.add_image('cat', img_array, 1, dataformats='HWC')

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

writer.close()

运行后在文件夹下出现一个logs的文件夹,里面有event文件
在命令行输入

tensorboard --logdir=logs

Pytorch之Tensorboard(可视化)_第5张图片

从而打开logs下记录的tensorboard文件
点击链接正常进入可以查看

Pytorch之Tensorboard(可视化)_第6张图片

你可能感兴趣的:(Pytorch基础篇,pytorch)