烤宽面条中的实时数据增强

时间:2016-01-04 11:20:22

标签: machine-learning deep-learning conv-neural-network lasagne nolearn

我需要对我的数据集进行实时扩充以输入CNN,但我很难找到适合它的库。我尝试了caffe,但DataTransform不支持许多实时扩充,例如旋转等。因此,为了便于实施,我使用了Lasagne。但似乎它也不支持实时扩充。我看过一些与Facial Keypoints detection相关的帖子,他使用Batchiterator nolearn.lasagne。但我不确定它是否真实。它没有适当的教程。最后我应该如何通过Lasagne或其他方式在nolearn中进行实时扩充?

3 个答案:

答案 0 :(得分:1)

您可以使用Keras framework进行CNN培训的实时数据扩充。 Here是来自github的CIFAR10数据集的示例代码。您也可以更改它以适应您的需求或复制源代码并添加到烤宽面条项目,但我之前没有尝试导入千层面。这背后的基本思想是随机增加每批次的数据。如果您有适合网络的批次循环,则可以在将数据发送到网络之前调用扩充功能。

答案 1 :(得分:1)

是的,您可以在Lasagne中进行实时数据增强。最简单的方法是使用GaussianNoiseLayer。只需在输入图层后插入即可。如果高斯噪声不是你所需要的,那么至少你有GaussianNoiseLayer作为如何实现自己的噪声。

请注意在Lasagne中如何使用deterministic参数。它默认是关闭的,因此在训练期间会增加噪音。在测试过程中,您设置了deterministic=True,只是避免了扩充。

答案 2 :(得分:0)

是的,你提到的Facial Keypoints Recognition教程确实使用实时(动态)增强来随机翻转输入图像(和目标坐标)。

nolearn-utils库有大量的迭代器示例,它们可以进行多种类型的扩充。例如。 AffineTransformBatchIteratorMixin会随机进行仿射变换。