Data Augmentation
这个词其实很容易误导人,因为 Augmentation 是增广的意思。数据增广,自然而然就会让人理解为:“增加了新的数据”。然而在实现的过程中,不一定是这样。
我们会给定一些随机化的参数,在每个 epoch 内生成随机增广后的图片。
比方说,每个 epoch 都按照一定的 random rule 来 crop 图片、调整色调,便是图像增广。
PyTorch 实现
这里拿 Fashion-MNIST 举例,同样我们会给出例子来证明我们的做法是行之有效的。
首先引入包:
加载 FashionMNIST 数据集,并且禁用 shuffle,这样保证我们每个 epoch 图片顺序都是相同的,方便我们验证:
辅助渲染的函数:
测试三个 epoch,看每次 epoch 第一个 batch 的数据:
输出:
可以看出有明显的不同。
本文中的 notebook:https://github.com/JeffersonQin/deep-learning/blob/master/tests/pytorch-data-augmentation.ipynb