pytorch tensorboard可视化的使用详解

PyTorch TensorBoard是一个可视化工具,可以帮助开发者更好地理解和调试深度学习模型。本文将介绍如何使用PyTorch TensorBoard进行可视化,并演示两个示例。

安装TensorBoard

在使用PyTorch TensorBoard之前,需要先安装TensorBoard。可以使用以下命令在终端中安装TensorBoard:

pip install tensorboard

使用TensorBoard

示例一:可视化损失函数

import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.tensorboard import SummaryWriter

# 创建一个SummaryWriter对象
writer = SummaryWriter()

# 定义模型和损失函数
model = nn.Sequential(nn.Linear(784, 256), nn.ReLU(), nn.Linear(256, 10))
criterion = nn.CrossEntropyLoss()

# 定义优化器
optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.9)

# 加载MNIST数据集
train_dataset = datasets.MNIST(root='./data', train=True, transform=transforms.ToTensor(), download=True)
train_loader = torch.utils.data.DataLoader(train_dataset, batch_size=32, shuffle=True)

# 训练模型
for epoch in range(10):
    for i, (inputs, labels) in enumerate(train_loader):
        # 前向传播
        inputs = inputs.view(inputs.size(0), -1)
        outputs = model(inputs)
        loss = criterion(outputs, labels)

        # 反向传播
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()

        # 记录损失函数值
        writer.add_scalar('Loss/train', loss.item(), epoch * len(train_loader) + i)

# 关闭SummaryWriter对象
writer.close()

在上述代码中,我们首先创建了一个SummaryWriter对象writer,用于记录训练过程中的损失函数值。然后,我们定义了一个模型和一个损失函数,使用torch.optim.SGD()函数定义了一个优化器optimizer。接着,我们使用torchvision.datasets.MNIST()函数加载MNIST数据集,并使用torch.utils.data.DataLoader()函数构建了一个数据加载器train_loader。最后,我们使用一个双重循环来训练模型,并使用writer.add_scalar()函数记录损失函数值。

示例二:可视化模型结构

import torch
import torch.nn as nn
from torch.utils.tensorboard import SummaryWriter

# 创建一个SummaryWriter对象
writer = SummaryWriter()

# 定义模型
class Net(nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.fc1 = nn.Linear(784, 256)
        self.relu = nn.ReLU()
        self.fc2 = nn.Linear(256, 10)

    def forward(self, x):
        x = self.fc1(x)
        x = self.relu(x)
        x = self.fc2(x)
        return x

model = Net()

# 记录模型结构
writer.add_graph(model, torch.randn(1, 784))

# 关闭SummaryWriter对象
writer.close()

在上述代码中,我们首先创建了一个SummaryWriter对象writer,用于记录模型结构。然后,我们定义了一个模型Net,并使用writer.add_graph()函数记录模型结构。其中,torch.randn(1, 784)是一个随机输入,用于生成模型结构图。

运行TensorBoard

在使用PyTorch TensorBoard进行可视化之后,需要在终端中运行TensorBoard。可以使用以下命令在终端中运行TensorBoard:

tensorboard --logdir=runs

其中,--logdir参数指定了SummaryWriter对象的保存路径。在上述示例中,我们使用了默认的保存路径runs。

结论

总之,PyTorch TensorBoard是一个非常有用的可视化工具,可以帮助开发者更好地理解和调试深度学习模型。开发者可以根据自己的需求使用PyTorch TensorBoard进行可视化,例如可视化损失函数、可视化模型结构等。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pytorch tensorboard可视化的使用详解 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • Faster-RCNN Pytorch实现的minibatch包装

    实际上faster-rcnn对于输入的图片是有resize操作的,在resize的图片基础上提取feature map,而后generate一定数量的RoI。 我想首先去掉这个resize的操作,对每张图都是在原始图片基础上进行识别,所以要找到它到底在哪里resize了图片。 直接搜 grep ‘resize’ ./lib/ -r ./lib/crnn/ut…

    PyTorch 2023年4月8日
    00
  • windows下配置pytorch环境

    借鉴了B站大佬的视频,自己总结安装如下。 首先安装anaconda 按照操作顺序,依次安装,按照我个人习惯,不喜欢讲文件安装在C盘,你们自己决定。 安装完毕之后。 之后打开Anaconda Prompt,如下图: 换源: 输入红线命令到Anaconda Prompt中,不过我建议换清华源,因为用conda安装软件时,比如安装pytroch就会很容易中断,因为…

    2023年4月8日
    00
  • Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式

    将单张图片转为PyTorch张量是深度学习中常见的操作之一。在PyTorch中,我们可以使用PIL和Numpy库来实现这一操作。本文将提供一个详细的图文教程,介绍如何使用PIL和Numpy将单张图片转为PyTorch张量,并提供两个示例说明。 1. 使用PIL将单张图片转为PyTorch张量 以下是一个示例代码,展示了如何使用PIL将单张图片转为PyTorc…

    PyTorch 2023年5月15日
    00
  • pytorch提取神经网络模型层结构和参数初始化

    torch.nn.Module()类有一些重要属性,我们可用其下面几个属性来实现对神经网络层结构的提取: torch.nn.Module.children() torch.nn.Module.modules() torch.nn.Module.named_children() torch.nn.Module.named_moduless() 为方面说明,我们…

    2023年4月8日
    00
  • 基于pytorch框架的图像分类实践(CIFAR-10数据集)

    在学习pytorch的过程中我找到了关于图像分类的很浅显的一个教程上一次做的是pytorch的手写数字图片识别是灰度图片,这次是彩色图片的分类,觉得对于像我这样的刚刚开始入门pytorch的小白来说很有意义,今天写篇关于这个图像分类的博客. 收获的知识 1.torchvison 在深度学习中数据加载及预处理是非常复杂繁琐的,但PyTorch提供了一些可极大简…

    2023年4月8日
    00
  • Pytorch Tensor 维度的扩充和压缩

    维度扩展 x.unsqueeze(n) 在 n 号位置添加一个维度 例子: import torch x = torch.rand(3,2) x1 = x.unsqueeze(0) # 在第一维的位置添加一个维度 x2 = x.unsqueeze(1) # 在第二维的位置添加一个维度 x3 = x.unsqueeze(2) # 在第三维的位置添加一个维度 p…

    PyTorch 2023年4月8日
    00
  • Pytorch中.new()的作用详解

    PyTorch中.new()的作用详解 在PyTorch中,.new()是一个非常有用的方法,它可以用来创建一个新的Tensor,同时可以指定新Tensor的形状、数据类型、设备等属性。本文将详细介绍.new()的用法和示例。 1. .new()的基本用法 .new()的基本用法如下: new_tensor = tensor.new(size=None, d…

    PyTorch 2023年5月15日
    00
  • [pytorch][持续更新]pytorch踩坑汇总

    BN层不能少于1张图片 File “/home/user02/wildkid1024/haq/models/mobilenet.py”, line 71, in forward x = self.features(x) File “/home/user02/anaconda2/envs/py3_dl/lib/python3.6/site-packages/t…

    PyTorch 2023年4月8日
    00
合作推广
合作推广
分享本页
返回顶部