我正在用cudaconvnet和Daniel Nouri的noccn模块进行图像分类,并希望通过拍摄大量原始图像的补丁(并翻转它)来实现数据增强。什么时候最适合发生这种情况?用卷积神经网络实现图像分类的数据增强
我已经确定了3个阶段在训练过程中何时能:给定一个批次
一)从数据创建批处理时,
B)获得下一批何时训练
C),获得当下一张图片以进入网络
在我看来,a)的优势在于我可以将增强数据分散到所有批次中。但它将占用磁盘空间的1000倍原始数据集已经是1TB,因此完全不可行。
b)和c)不涉及将新数据存储在磁盘上,但可以批量分散数据吗?如果我不这样做,那么假设我有batch_size == 128,并且我可以扩充我的数据1000x,那么接下来的8批将包含来自同一类的图像。训练网络并不坏,因为每个训练样本根本不会被随机化?此外,如果我选择b)或c)并从k个训练样例中创建一个新批次,那么数据增加n次将使批量n * k而不是多次批量n次。
例如,在我的情况下,我有batchsize == 128,可以预计1000倍数据增强。因此,每个批次实际上的大小为128 * 1000,我会得到的是更精确的偏导数估计值(对于无用的程度,因为batchsize == 128k是无意义的高)。
那我该怎么办?
这是否意味着你的模型永远不会看到实际的地面真相图像,但始终是图像的修改版本? – Demonedge
@Demonedge你的一个随机增强可能无能为力。 – Alex