9

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

my_test_dir/picture-foo.jpg 0

但就我而言,我将用 0 或 1 标记每个像素,指示该像素是否显着。这不会是图像的单个标签。

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

4

3 回答 3

10

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

1.使用HDF5数据层代替LMDB。HDF5更加灵活,可以支持图片大小的标签。您可以查看此答案以获取构建和使用 HDF5 输入数据层的示例。

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

更新:我最近在这里给出了更详细的答案。

于 2015-11-10T11:29:53.983 回答
1

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

只需将所有图像X和相应的标签加载到Y.

于 2015-12-02T08:47:21.277 回答
0

在 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, label=None):

于 2016-09-01T12:50:09.700 回答