Day62:Tensorboard用法与实战
在上一节中,我们学习了如何优化网络模型,这个过程中我们可以需要及时查看一些参数才能得知如何优化,这种时候就需要用到我们的Tensorboard。在深度学习中,Tensorboard是一种强大的可视化工具,可以帮助我们监控和调试模型的训练过程,以及分析模型的性能。本节将介绍如何在PyTorch中使用Tensorboard,并展示一些常见的用法。
首先,确保已经安装了Tensorboard和TensorboardX库。
pip install tensorboard
pip install tensorboardX
接下来,我们将结合一个示例来演示如何使用Tensorboard进行可视化。假设我们使用PyTorch训练一个图像分类模型,并使用CIFAR-10数据集。
###1. 导入所需的库和模块
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.tensorboard import SummaryWriter
import torchvision
import torchvision.transforms as transforms
2. 定义网络模型
我们定义一个卷积神经网络,它由一个卷积层、一个池化层和两个全连接层组成,注意全连接层前要将特征图展开第二维与自己第一维一致:
class MyModel(nn.Module):
def __init__(self):
super(MyModel, self).__init__()
self.conv1 = nn.Conv2d(3, 16, 3, padding=1)
self.relu = nn.ReLU()
self.pool = nn.MaxPool2d(2, 2)
self.fc1 = nn.Linear(16 * 8 * 8 * 4, 64)
self.fc2 = nn.Linear(64, 10)
def forward(self, x):
x = self.conv1(x)
x = self.relu(x)
x = self.pool(x)
x = x.view(x.shape[0], -1)
x = self.fc1(x)
x = self.relu(x)
x = self.fc2(x)
return x
model = MyModel()
3. 数据预处理和加载器
transform = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
])
trainset = torchvision.datasets.CIFAR10(root='./data', train=True, download=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=32, shuffle=True)
testset = torchvision.datasets.CIFAR10(root='./data', train=False, download=True, transform=transform)
testloader = torch.utils.data.DataLoader(testset, batch_size=32, shuffle=False)
4. 损失函数和优化器
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9)
5. 创建Tenso
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
大模型-AI小册 文章被收录于专栏
1. AI爱好者,爱搞事的 2. 想要掌握第二门语言的Javaer或者golanger 3. 决定考计算机领域研究生,给实验室搬砖的uu,强烈建议你花时间学完这个,后续搬砖比较猛 4. 任何对编程感兴趣的,且愿意掌握一门技能的人