为C生成LMDB

2024-04-25 22:41:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用caffe(我使用python包装器)为显著性分析构建一个深入的学习模型。但我无法理解如何生成用于此目的的lmdb数据结构。我已经看过Imagenet和mnist的例子,我知道我应该按照格式生成标签

my_test_dir/picture-foo.jpg 0

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

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


Tags: 模型test目的lmdb数据结构my格式dir
3条回答

检查这个: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函数将三维数组转换为datum,可以在caffe/python/caffe.io.py中找到: 数组到基准(arr,label=None):

你可以用两种方法解决这个问题:

1.使用HDF5数据层而不是LMDB。HDF5更灵活,可以支持图像大小的标签。可以看到this answer以获取构造和使用HDF5输入数据层的示例。

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

更新:我最近给出了一个更详细的答案here

相关问题 更多 >