Neural network Caffe |通过随机裁剪增加数据

Neural network Caffe |通过随机裁剪增加数据,neural-network,deep-learning,crop,caffe,imagenet,Neural Network,Deep Learning,Crop,Caffe,Imagenet,我正在尝试在Caffe上训练我自己的网络,类似于Imagenet模型。但我对作物层感到困惑。在我了解Imagenet模型中的裁剪层之前,在训练期间,它将随机选取227x227图像裁剪并训练网络。但在测试过程中,它将需要中心227x227图像裁剪,当我们从256x256图像裁剪中心227x27图像时,我们是否会从图像中丢失信息?第二个问题,我们如何定义训练期间要收获的作物数量 此外,我还训练了相同的网络(相同层数,相同卷积大小的FC神经元会明显不同),第一次从256x256图像中截取227x227

我正在尝试在Caffe上训练我自己的网络,类似于Imagenet模型。但我对作物层感到困惑。在我了解Imagenet模型中的裁剪层之前,在训练期间,它将随机选取227x227图像裁剪并训练网络。但在测试过程中,它将需要中心227x227图像裁剪,当我们从256x256图像裁剪中心227x27图像时,我们是否会从图像中丢失信息?第二个问题,我们如何定义训练期间要收获的作物数量


此外,我还训练了相同的网络(相同层数,相同卷积大小的FC神经元会明显不同),第一次从256x256图像中截取227x227个片段,第二次从256x256图像中截取255x255个片段。根据我的直觉,255x255作物的模型应该给我最好的结果。但我用227x227图像获得了更高的准确度,有人能解释我背后的直觉吗,还是我做错了什么

您的观察结果并非特定于Caffe

训练和测试期间裁剪图像的大小需要相同(在您的情况下为227x227),因为上游网络层(卷积等)需要图像的大小相同。在训练期间进行随机裁剪是因为您需要数据扩充。但是,在测试过程中,您希望根据标准数据集进行测试。否则,测试期间报告的准确性也将取决于移动测试数据库

每次迭代都会动态生成作物。训练批中的所有图像都是随机裁剪的。我希望这能回答你的第二个问题

您的直觉还不完整:如果收割机更大(227x227),您的数据会增加更多。数据扩充实质上是从无到有地创建“新”训练样本。这对于防止训练期间过度装配至关重要。对于较小的裁剪(255x255),您应该期望更好的训练精度,但测试精度较低,因为数据更可能被过度拟合


当然,修剪可能会过度。裁剪过多会使图像丢失太多信息。对于图像分类,理想的裁剪尺寸是不改变图像类别的尺寸(即只裁剪背景)

我认为这个问题应该得到更广泛的答案,描述caffe如何准确地处理“动态”数据扩充。我很想看到答案。@Shai Ya那很好。