Pytorch之Tensorboard(可视化)

在torch里使用tensorboard是在这里

from torch.utils.tensorboard import SummaryWriter

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

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

writer = SummaryWriter("logs")

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

list/PIL_imagenumpy.arraytorch.tensor
list/PIL_imagendarray = np.array(list)tensor=torch.Tensor(list)
numpy.arraylist = 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仔细查看

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

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

最后记得关闭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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MrRoose

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值