2015-11-17 57 views
3

我开始使用Caffe和深度学习,我无法理解在HDF5数据上使用Caffe训练模型所需的预处理步骤。具体而言,Caffe HDF5预处理

  1. 是否需要将图像转换为[0-1]范围。笔记本示例(00-classification.ipynb)声明模型在[0-255]范围内运行,而一些参考文献显示它应该为[0-1]。我如何决定?
  2. 根据文档,批量图像数据的常规斑点尺寸是N×沟道K×高度H×宽度W.此处没有冲突
  3. RGB到BGR转换的通道交换步骤是强制性的?
  4. 如何对HDF5数据执行图像均值计算?对于compute_image_mean.cpp,后端是lmdb。这只是为了提高性能?

至于使用LMDB,问题1-3仍然存在。任何关于此的澄清将不胜感激。

回答

3

欢迎来到caffe。

1.将输入数据缩放到[0..1]或[0..255]的范围完全取决于您。有些模型在[0..1]范围内工作,其他模型在[0..255]中工作,并且与输入方法(LMDB/HDF5)的选择完全无关。
这里最重要的是一致的。如果您决定在[0..1]范围内工作,则必须确保以相同方式准备好培训和验证集,并且在“部署”阶段期间将新示例缩放到相同范围。

2.正如您已经观察到的,咖啡斑点总是4-D batch-channel-width-height。

3.由于BGR是opencv读取图像的方式,所以RGB到BGR再次不是强制性的,但非常常见。同样,这里最重要的是你的网络生命周期中的一致性。

4.最近,模型减去每个通道的平均值,而不是每个像素的平均值。这更方便,特别是如果你改变你的网络输入大小。处理HDF5数据时,您可以计算平均图像并将其保存到二进制文件中。请参阅an example here

+1

这是预处理步骤的简洁概述。我找不到涵盖所有这些文档的任何文档。感谢那。让我试试看。 – Unni

+1

非常感谢!我无法在任何地方找到详细的解释。我希望这对其他许多人也有用。 – Unni