为 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):
我正在尝试使用 caffe 构建用于显着性分析的深度学习模型(我正在使用 python 包装器)。但我无法理解如何为此目的生成 lmdb 数据结构。我已经浏览了 Imagenet 和 mnist 示例,我明白我应该以
格式生成标签my_test_dir/picture-foo.jpg 0
但在我的例子中,我将用 0 或 1 标记每个像素,以指示该像素是否显着。这不会是图像的单个标签。
如何为基于每个像素的标记生成 lmdb 文件?
您可以通过两种方式解决这个问题:
1. 使用HDF5数据层代替LMDB。 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):