3

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

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

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

4

1 回答 1

3

欢迎来到咖啡。

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

2.正如您已经观察到的,Caffe blob 始终是 4-D batch-channel-width-height。

3. RGB 到 BGR 再次不是强制性的,但很常见,因为 BGR 是 opencv 读取图像的方式。同样,这里最重要的是网络整个生命周期的一致性。

4.最近,模型减去每个通道的平均值,而不是每个像素的平均值。它更方便,特别是如果您更改网络的输入大小。在处理 HDF5 数据时,您可以计算平均图像并将其保存到 binaryproto 中。请参阅此处的示例

于 2015-11-18T06:51:38.000 回答