pytorch tensorboarX数据可视化

简介

(1)在使用pytorch训练模型时,可以使用tensorboardX实时监控各类数据的变化趋势;
(2)可以使用tensorboardX可视化图片数据;
(3)还有一些其它功能,我暂时没有用过,以后用到会继续补充(参考官方文档);
(4)这里介绍了如何书写代码,如何查看使用Tensorboard记录下来的数据点这里

图片数据可视化

有时候我们希望观察图片在预处理或者数据增强以后的效果,又或者希望观察图片特征的可视化结果,那么tensorboardx都可以派上用场。

from tensorboardX import SummaryWriter
import cv2
import numpy as np
import time
import os

img = cv2.imread('testImg')
img = np.transpose(img,(2,0,1)) #add_image默认array的形状是[C,H,W],而cv2写入图片给出的array形状是[H,W,C];

time_str = time.strftime('%Y-%m-%d-%H-%M')
test_dir = '/home/local/test'
log_dir = os.path.join(test_dir,time_str)

writer = SummaryWriter(log_dir = log_dir) #参数是一个存储路径;
writer.add_image('testImage',img,global_step = 1)

在使用add_image方法时,有一些注意事项:
(1)第一个参数是数据的一个标题,第二个参数是图片数据,可以使numpy.array形式,也可以是torch.Tensor形式(Tensorflow下的Tenosr不清楚,没有使用过,应该也是可以的);
(2)图片数据的格式必须是[C,H,W],而opencv读入数据默认是[H,W,C]格式的numpy.array数据,因此需要用np.transpose方法调整;
(3)图片数据的通道数最多为3,不能超过3,否则报错。因此在可视化图片特征的时候,也只能可视化3通道以下;

其他代码解释:
(1)time.strftime方法可以以格式化方法返回一个str类型的当前时间表示,用于建立独立的文件夹存储tensorboardX输出的中间数据文件;
(2)SummaryWriter中的log_dir参数是存储中间数据文件的文件夹路径,可以不用自行新建,调用该方法时就会自动新建;

训练指标走势可视化

在使用pytorch训练深度学习模型时,我们通常需要监控模型在训练过程中各项指标的走势,比如:训练中的各项损失的走势、模型各项评价指标在测试过程中的走势,那么就需要用到SummaryWriter中的add_scalar()方法。

from tensorboardX import SummaryWriter

time_str = time.strftime('%Y-%m-%d-%H-%M')
test_dir = '/home/local/test'
log_dir = os.path.join(test_dir,time_str)

writer = SummaryWriter(log_dir = log_dir) #参数是一个存储路径;

epochs = 10
for epoch in range(epochs):
	train_loss = epoch    #这里就随便写了一个例子,具体情况具体使用;
	writer.add_scalar('testScalar',train_loss,epoch)

这样就可以记录一个训练指标的走势了,不同的指标只需要多次使用writer.add_scalar()方法,将第一个参数tag修改为不同的字符串即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值