Bootstrap

数据增强(在线数据增强和离线的区别)

数据增强

数据增强分为:在线数据增强和离线数据增强

  • 离线数据增强就是一次性把数据读入内存并扩充好,然后用这个扩充后的数据集进行训练,适用于较小的数据集。

  • 在线数据增强就是现在的深度学习框架中所提供的数据增强方式。在每个epoch训练前,对数据集进行平移,旋转等。

​ 数据增强后每个epoch的训练图片数量并没有变;但是由于增强手段 中的随机裁剪,随机畸变等方法中的 随机 ,导致训练中每个epoch的 训练图片都不一样,这样就间接导致数据量的增加。 (这边一定要 注意我们的数据增强方法都是随机的,只有这样每个epoch的数据才 会不一样)

​ 在线增强的缺点就是会使训练速度变慢

这里解决一个疑问:就是我们一般将数据增强写在dataset类内,但是dataset是在epoch循环外的,那么每个epoch的数据不都一样了吗?

其实并不是,因为虽然dataset定义在循环外,但是在每个epoch里面都调用了dataloader来加载数据,而dataloader内部调用了dataset类。所以每个epoch的数据都不一样

;