数据增强

我们都知道,神经网络能够拟合任意的非线性函数,但是这都有一个前提,就是我们的Train数据集足够的大,能够让模型学习到足够多的信息,但实际情况下,很多时候我们并没有如此大的数据集。那怎么办呢?我们可以通过对原图像做一些变换生成新的图像,从而扩大数据集。

以下api都来自于torchvision.nn.transforms

Resize

改变图片大小:

使用示例:transforms.Resize([32,32])

Flip

翻转操作

transforms.RandomHorizontalFlip():随机决定是否左右翻转

transforms.RandomVerticalFlip():随机决定是否上下翻转

Rotate

旋转操作

transforms.RandomRotation(15):随机在-15~15度之间进行旋转.

transforms.RandomRotation([90,180,270]):随机旋转90,180,270度

Crop part

随机裁剪部分:

transforms.RandomCrop([28,28]):随机裁剪为28*28

Noise

使用numpy随机添加噪声