【问题标题】:Caffe HDF5 Pre-processingCaffe HDF5 预处理
【发布时间】:2016-02-19 09:35:22
【问题描述】:

我刚开始使用 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 仍然成立。对此的任何澄清将不胜感激。

【问题讨论】:

    标签: neural-network deep-learning hdf5 caffe lmdb


    【解决方案1】:

    欢迎来到咖啡厅。

    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 中。见an example here

    【讨论】:

    • 这是对预处理步骤的清晰总结。我找不到任何涵盖所有这些的文档。感谢那。让我试试看。
    • 非常感谢!我在任何地方都找不到涵盖所有这些的详细解释。我希望这对其他人也有用。
    猜你喜欢
    • 2016-02-14
    • 2017-06-30
    • 2016-02-20
    • 2017-02-24
    • 2017-04-22
    • 2022-08-10
    • 2016-12-13
    • 2017-03-19
    • 2016-02-12
    相关资源
    最近更新 更多