数据增强是深度学习中常用的技术,可以帮助模型更好地泛化。本文将介绍 PyTorch 中如何进行数据增强。

1. 数据增强概述

数据增强是指在训练过程中对原始数据进行一系列变换,从而生成新的数据集。这些变换包括旋转、缩放、裁剪、颜色变换等。

2. PyTorch 数据增强库

PyTorch 提供了 torchvision.transforms 库,其中包含了多种数据增强方法。

2.1 旋转

from torchvision.transforms import RandomRotation

transform = RandomRotation(30)

2.2 缩放

from torchvision.transforms import Resize

transform = Resize((256, 256))

2.3 裁剪

from torchvision.transforms import RandomCrop

transform = RandomCrop((224, 224))

2.4 颜色变换

from torchvision.transforms import ColorJitter

transform = ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2, hue=0.1)

3. 使用数据增强

在训练模型时,可以将数据增强应用到训练数据上。

from torch.utils.data import DataLoader
from torchvision import datasets, transforms

transform = transforms.Compose([
    transforms.RandomRotation(30),
    transforms.Resize((256, 256)),
    transforms.RandomCrop((224, 224)),
    transforms.ColorJitter(brightness=0.2, contrast=0.2, saturation=0.2, hue=0.1),
    transforms.ToTensor()
])

train_dataset = datasets.CIFAR10(root='./data', train=True, download=True, transform=transform)
train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True)

4. 扩展阅读

更多关于 PyTorch 数据增强的信息,请参考 PyTorch 官方文档

5. 图片示例

数据增强示例