2

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

4

3 回答 3

1

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

于 2016-01-04T23:45:02.937 回答
1

是的,您可以在 Lasagne 中进行实时数据扩充。最简单的方法是使用GaussianNoiseLayer。只需将其插入到您的输入层之后。如果高斯噪声不是您需要的,那么至少您有 GaussianNoiseLayer 作为如何实现自己的示例。

请注意该deterministic参数是如何在千层面中使用的。默认情况下它是关闭的,因此在训练期间会添加噪声。在测试期间,您设置deterministic=True并且简单地避免了增强。

于 2016-07-06T14:11:21.233 回答
1

是的,您提到的面部关键点识别教程确实使用实时(动态)增强来随机翻转输入图像(和目标坐标)。

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

于 2016-08-28T02:34:43.160 回答