PyTorch 1.10.0 图像识别模型训练示例 - 使用 ResNet-101 和 CIFAR-100 数据集
实际上,目前 PyTorch 的最新版本是 1.10.0,并不是 2.1 版本。请忽略我之前提到的 PyTorch 2.1 版本。
对于您的配置要求,包括 Python 3.11、CUDA 12.2 和 PyTorch 1.10.0,以下是一个简单的示例,使用 ResNet-101 和 PyTorch 1.10.0 训练一个图像识别模型,并使用 CIFAR-100 数据集进行训练。
import torch
import torchvision
import torchvision.transforms as transforms
import torch.optim as optim
import torch.nn as nn
from torchvision.models import resnet101
# 定义数据集加载和预处理
transform_train = transforms.Compose([
transforms.RandomCrop(32, padding=4),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
])
transform_test = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
])
trainset = torchvision.datasets.CIFAR100(root='./data', train=True, download=True, transform=transform_train)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=128, shuffle=True, num_workers=4)
testset = torchvision.datasets.CIFAR100(root='./data', train=False, download=True, transform=transform_test)
testloader = torch.utils.data.DataLoader(testset, batch_size=100, shuffle=False, num_workers=4)
# 定义模型和损失函数
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
net = resnet101(pretrained=False)
num_ftrs = net.fc.in_features
net.fc = nn.Linear(num_ftrs, 100) # CIFAR-100 数据集有 100 个类别
net = net.to(device)
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9)
# 进行模型训练
for epoch in range(10): # 根据需要进行更多的训练轮数
running_loss = 0.0
for i, data in enumerate(trainloader, 0):
inputs, labels = data[0].to(device), data[1].to(device)
optimizer.zero_grad()
outputs = net(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
running_loss += loss.item()
if i % 2000 == 1999:
print('[%d, %5d] loss: %.3f' %
(epoch + 1, i + 1, running_loss / 2000))
running_loss = 0.0
print("Finished Training")
请确保您在 PyCharm 中配置了正确的 Python 解释器(版本为 3.11)和 CUDA(版本为 12.2),并正确安装了 PyTorch 1.10.0。
希望这个示例能帮助您开始使用 ResNet-101 和 PyTorch 1.10.0 训练图像识别模型,使用 CIFAR-100 数据集进行训练。如果您需要更详细的帮助或有其他问题,请随时提问!
原文地址: https://www.cveoy.top/t/topic/c4fY 著作权归作者所有。请勿转载和采集!