Pytorch训练过程可视化

PyTorch深度学习实战笔记

1. TensorBoard

TensorBoard是TensorFlow提供的一组可视化工具(A Suite of Visualization Tools),可以帮助开发者理解、调试和优化TensorFlow程序,作为一款优秀的可视化组件,自然会被其他框架借用和引进。在PyTorch中也能够通过TensorBoardX组件使用这一款可视化工具,TensorBoardX组件支持scalar、image、figure、histogram、audio、text、graph、onnx_graph、embedding、pr_curve、videosummaries等不同的可视化展示方式。下面先安装TensorBoardX组件。

pip install tensorboardX
pip install tensorflow
pip install Tensorboard_logger

TensorBoard通过读取日志文件进行可视化,使用时需要引入SummaryWriter。

from tensorboardX import SummaryWriter
writer = SummaryWriter()

标量可视化

使用SummaryWriter上的add_scalar方法添加标量,其定义如下。

add_scalar(tag,scalar_value,global_step=None,walltime=None)

第一个参数设定标量的标签;第二个参数指定标量的值;第三个参数是全局的step;最后一个参数是标量产生的时间,默认为当前的系统时间。

# 20个step对应的损失
from tensorboardX import SummaryWriter
writer = SummaryWriter()
losses = list(range(20,0,-1))
for step in range(20): 
    writer.add_scalar("data/loss",losses[step]*5,step)
    writer.add_scalar("data/loss1",losses[step],step)

运行上述代码将在项目目录下产生runs文件夹.
下面通过“tensorboard–host 127.0.0.1–logdir./runs”启动TensorBoard服务,–host参数指定运行的IP地址,–logdir参数则指定日志存放的目录,TensorBoard将读取该目录下的日志文件,并解析和可视化。

tensorboard --host 127.0.0.1 --logdir ./runs

打开浏览器,输入“http://127.0.0.1:6006”即可看到可视化界面。在界面中单击“SCALARS”可以看到刚才写入的标量数据的可视化信息.
注:在VScode中可直接launch TensorBoard session

python.exe -m pip install -U torch-tb-profiler

未完待续

2 . visdom

Visdom是一个专业的可视化工具,用于创建、组织和共享数据的可视化,支持NumPy和Tensor数据,使用简单的命令便可以绘制出丰富的图片,其支持的图表包括折线图、热力图、小提琴图、散点图等。
先通过pip命令安装Visdom:

pip install visdom

启动Visdom服务

python -m visdom.server

启动后通过浏览器访问“http://localhost:8097”即可进入Visdom可视化界面。将数据发送给Visdom进行可视化的过程如下:先实例化一个环境,得到Visdom实例,通过实例中的方法向Visdom服务写入需要可视化的的数据,Visdom接收到数据便进行相应的展示。

import visdom
import numpy as np
import time


# # 单一显示
# viz = visdom.Visdom(port=8097,server="127.0.0.1",env = "Test")
# viz.line(np.arange(1))
# global_step = 0
# while True:
#     global_step += 1
#     print(global_step)
#     viz.line(Y = np.array([np.random.random()]),X = np.array([global_step]),update = 'append',win = "Test")
#     time.sleep(1)


# 多变量显示
viz = visdom.Visdom(port=8097,server="127.0.0.1",env = "Test")
legend = ['train_loss', 'test_loss']
title = 'Train'
# viz.line([[0.,0.]], [0], win='train', opts=dict(title=title, legend=legend))
global_step = 0
while True:
    global_step += 1
    print(global_step)
    train_loss = np.random.random()
    test_loss = np.random.random()*0.8-1
    viz.line([[train_loss,test_loss ]],[global_step],update = 'append',win = "Test",opts=dict(title=title, legend=legend))
    time.sleep(1)
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyTorch是一个流行的深度学习框架,它提供了丰富的功能来进行图像识别任务。在PyTorch中,可以使用各种技术和工具来可视化图像识别的结果和过程。 一种常见的图像识别可视化方法是使用预训练的卷积神经网络(CNN)模型,如ResNet、VGG等。这些模型在大规模图像数据集上进行了训练,并且可以用于图像分类、目标检测等任务。在PyTorch中,可以使用torchvision库加载这些预训练模型,并使用它们进行图像识别。 以下是一种基本的PyTorch图像识别可视化的方法: 1. 导入必要的库和模型: ```python import torch import torchvision.models as models import torchvision.transforms as transforms from PIL import Image # 加载预训练模型 model = models.resnet50(pretrained=True) ``` 2. 加载和预处理图像: ```python # 加载图像 image = Image.open('image.jpg') # 定义图像预处理的转换 preprocess = transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), ]) # 对图像进行预处理 input_tensor = preprocess(image) input_batch = input_tensor.unsqueeze(0) ``` 3. 运行图像识别: ```python # 将输入张量传递给模型 model.eval() with torch.no_grad(): output = model(input_batch) # 获取预测结果 _, predicted_idx = torch.max(output, 1) ``` 4. 可视化结果: ```python # 加载类别标签 with open('imagenet_classes.txt') as f: labels = [line.strip() for line in f.readlines()] # 打印预测结果 print(labels[predicted_idx.item()]) # 可视化图像和预测结果 import matplotlib.pyplot as plt plt.imshow(image) plt.title(labels[predicted_idx.item()]) plt.axis('off') plt.show() ``` 这是一个简单的示例,你可以根据自己的需求进行更多的定制和扩展。同时,还可以使用其他的可视化技术,如Grad-CAM、t-SNE等来进一步分析和理解模型的预测结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值