在lmdb中存储多个字段以与caffe一起使用

时间:2017-12-11 16:49:25

标签: caffe pycaffe lmdb

我正在为一个caffe网构建一个lmdb数据库,它存储各种图像,如下所示:

txn.put('{:0>10d}'.format(dbCtr),currImageDatum.SerializeToString())

我将两个字符串存储为键值对。但是,我还想存储一些元数据。具体来说,我想存储图像来自的文件的名称。我的理解是value必须是单个字符串,而不是[currImageDatum.SerializeToString(), 'myImage.jpg']

所以,我能想到的唯一方法就是:

txn.put('{:0>10d}'.format(dbCtr),currImageDatum.SerializeToString() + '__MY_META_DATA__' + 'myImage.jpg')

然后,在读取lmdb时,将值字符串拆分为“__MY_META_DATA__”之前的部分以及之后的部分。

这是一种合理的方法吗?还有其他一些标准方法吗?

1 个答案:

答案 0 :(得分:0)

AFAIK caffe的"Data"图层从lmdb读取Datum的方式非常严格,您无法轻易更改它。
如果您正在考虑使用lmdb的替代方法,请查看更灵活的"HDF5Data"图层。