动手学深度学习 | 数据增广 | 35

数据增广

数据增广的话就不局限于图片,对文本、语音等都可以进行增广,这里主要是针对图片的技术。

代码

简简单单一个左右翻转的图像增广,就可以有效缓解让cifar10的过拟合情况。

其实不要奇怪,在ImageNet上,如果数据增广做的比较狠的话,经常是可以看到test acc高于train acc的,是因为测试环境不会对图片做数据增广,而训练环境把图片都增广(一堆鬼样子)。


QA

  1. 理论上,是不是原始样本足够多,就不用做增广了?

是的,但是这样的情况很难发生。

还有图片多,并不代表数据集的多样性好。

还有就是真正应用的时候,其实还有可能会出现更加奇怪的图片。

  1. num_worker的值是不是根据机器GPU性能而设定?

不是GPU,是CPU...

如果你CPU是双核的,那么num_worker就取2。

虽然我们说深度学习拼的GPU,但是CPU也不能太差,否则数据预处理的时候就会非常的拉跨。(CPU至少要个8核吧)

  1. 测试一般怎么做增广呢?

测试集一般是不做增广的。

但是如果是输入的一张随机图片,那么就会保留短边,然后按照比例去resize成(224*224)

  1. 关于cifar10的训练

cifar10的测试精度是可以很高的,可以到95%,大概需要200个epoch。

但是trian acc和test acc之间的gap是不会减少的,一般也很少减少,最终train acc可以达到100%。

  1. 图片增广后需要人工一张张的确认效果吗?

不用一张张,但是要大致看一下,保证不要太奇怪就行了。

原文地址:https://www.cnblogs.com/Rowry/p/15365972.html