pytorch tensorboarX数据可视化

    技术2026-08-21  11

    简介

    (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修改为不同的字符串即可。

    Processed: 0.013, SQL: 9