温馨提示×

pytorch怎么划分数据集

小亿
81
2024-12-31 05:11:10
栏目: 深度学习

在PyTorch中,划分数据集通常使用torch.utils.data.DataLoadertorchvision.transforms模块。以下是一个简单的示例,展示了如何将数据集划分为训练集、验证集和测试集:

  1. 首先,导入所需的库:
import torch
from torch.utils.data import DataLoader, random_split
from torchvision import datasets, transforms
  1. 定义数据预处理:
transform = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize((0.5,), (0.5,))
])
  1. 加载数据集(这里以CIFAR-10为例):
train_dataset = datasets.CIFAR10(root='./data', train=True, download=True, transform=transform)
test_dataset = datasets.CIFAR10(root='./data', train=False, download=True, transform=transform)
  1. 划分数据集:
# 将数据集划分为训练集、验证集和测试集
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])
  1. 创建数据加载器:
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数据集划分为训练集、验证集和测试集,并创建了相应的数据加载器。你可以使用这些数据加载器进行模型训练、验证和测试。

0