PyTorch 的数据增强
我们在安装PyTorch时,还安装了torchvision,这是一个计算机视觉工具包。有 3 个主要的模块:
torchvision.transforms: 里面包括常用的图像预处理方法
torchvision.datasets: 里面包括常用数据集如 mnist、CIFAR-10、Image-Net 等
torchvision.models: 里面包括常用的预训练好的模型,如 AlexNet、VGG、ResNet、GoogleNet 等
深度学习模型是由数据驱动的,数据的数量和分布对模型训练的结果起到决定性作用。所以我们需要对数据进行预处理和数据增强。下面是用数据增强,从一张图片经过各种变换生成 64 张图片,增加了数据的多样性,这可以提高模型的泛化能力。
常用的图像预处理方法有:
数据中心化
数据标准化
缩放
裁剪
旋转
翻转
填充
噪声添加
灰度变换
线性变换
仿射变换
亮度、饱和度以及对比度变换。
在人民币图片二分类实验中,我们对数据进行了一定的增强。
设置训练集的数据增强和转化
train_transform = transforms.Compose([
transforms.Resize((32, 32)),# 缩放
transforms.RandomCrop(32, padding=4), #裁剪
transforms.ToTensor(), # 转为张量,同时归一化
transforms.Normalize(norm_mean, norm_std),# 标准化
])
设置验证集的数据增强和转化,不需要 RandomCrop
valid_transform &