为 Caffe 生成 LMDB

Generating LMDB for Caffe

我正在尝试使用 caffe 构建用于显着性分析的深度学习模型(我正在使用 python 包装器)。但我无法理解如何为此目的生成 lmdb 数据结构。我已经浏览了 Imagenet 和 mnist 示例,我明白我应该以

格式生成标签
my_test_dir/picture-foo.jpg 0

但在我的例子中,我将用 0 或 1 标记每个像素,以指示该像素是否显着。这不会是图像的单个标签。

如何为基于每个像素的标记生成 lmdb 文件?

您可以通过两种方式解决这个问题:

1. 使用HDF5数据层代替LMDB。 HDF5 更灵活,可以支持标注图像大小。您可以查看构建和使用HDF5输入数据层的示例。

2. 您可以有两个 LMDB 输入层:一个用于图像,一个用于标签。请注意,当您构建 LMDB 时,您必须 而不是 使用 'shuffle' 选项以使图像及其标签同步。

更新:我最近给出了更详细的回答

检查这个:http://deepdish.io/2015/04/28/creating-lmdb-in-python/

只需加载 X 中的所有图像和 Y 中的相应标签。

在 caffe 中,lmdb 和 hdf5 都支持每个图像多个标签,如果您愿意,可以使用矩阵,请参阅此线程:

https://github.com/BVLC/caffe/issues/1698#issue-53768814

请参阅本教程,了解如何使用 python 代码为 caffe 创建多标签数据集(此处为 lmdb):

http://www.kostyaev.me/article/Multilabel%20Dataset/

编辑:例如,对于标签,它使用 caffe-python 函数将 3 维数组转换为数据,在 caffe/python/caffe.io.py 中找到: array_to_datum(arr, 标签=None):