LMDB中用于Caffe培训的关键

时间:2017-07-31 14:25:12

标签: python neural-network caffe pycaffe lmdb

我是Caffe的新手。关于我的问题,文档并不清楚。

在LMDB for Caffe中创建训练/测试数据库时,数据库中的键是否有任何意义?

换句话说,Caffe是否使用LMDB密钥中的任何信息,还是只使用关联的值,忽略密钥?

我发现的所有示例都建立了一些数据项的枚举,并将数字转换为字符串的数据对放在数据库中。 Example

# create database, 
# open transaction
# ...
for i in range(N):
    datum = caffe.proto.caffe_pb2.Datum()

    # add other attributes to datum

    str_id = '{:08}'.format(i)
    txn.put(str_id.encode('ascii'), datum.SerializeToString())

如果我将一些其他唯一值分配给str_id而不是转换为字符串,并将其提交给txn.put,该怎么办?

培训结果会改变吗?

事实上它也可以使用没有键的HDF5格式,这表明Caffe忽略了它们,但我想确定。

更新我是否认为LMDB中的此类枚举是为了模拟LMDB中的行索引而正确的,因为LMDB是键值存储,而神经网络需要表格数据?

1 个答案:

答案 0 :(得分:0)

任何键都应该没问题:

“LMDB将任意键/数据对存储为字节数组”

Source: Wikipedia