2017-07-31 75 views
1

我是Caffe的新手。文件不清楚我的问题的主题。Caffe训练LMDB中的钥匙

在LMDB中为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是一个关键值存储,而神经网络需要表格数据?

+0

为什么要改变的钥匙? – Shai

+0

我想添加关于数据集的调试信息。 – wl2776

回答

0

任何键应该没问题:

“LMDB店任意键/数据对作为字节数组”

Source: Wikipedia

+0

我已更新我的问题。它与Caffe有关,它如何解释输入数据,而不是LMDB格式本身。 – wl2776