在PyTorch中,划分数据集通常使用torch.utils.data.DataLoader
和torchvision.transforms
模块。以下是一个简单的示例,展示了如何将数据集划分为训练集、验证集和测试集:
import torch
from torch.utils.data import DataLoader, random_split
from torchvision import datasets, transforms
transform = transforms.Compose([
transforms.ToTensor(),
transforms.Normalize((0.5,), (0.5,))
])
train_dataset = datasets.CIFAR10(root='./data', train=True, download=True, transform=transform)
test_dataset = datasets.CIFAR10(root='./data', train=False, download=True, transform=transform)
# 将数据集划分为训练集、验证集和测试集
train_size = int(0.8 * len(train_dataset))
val_size = int(0.1 * len(train_dataset))
test_size = len(train_dataset) - train_size - val_size
train_dataset, val_dataset, test_dataset = random_split(train_dataset, [train_size, val_size, test_size])
train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True)
val_loader = DataLoader(val_dataset, batch_size=64, shuffle=False)
test_loader = DataLoader(test_dataset, batch_size=64, shuffle=False)
现在,你已经成功地将CIFAR-10数据集划分为训练集、验证集和测试集,并创建了相应的数据加载器。你可以使用这些数据加载器进行模型训练、验证和测试。