用于Caffe培训的LMDB密钥

2024-05-17 03:19:23 发布

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

我刚到咖啡馆。文件不清楚我的问题的主题。在

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

换句话说,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是一个键值存储,而神经网络需要表格数据?在


Tags: 文件数据字符串id数据库lmdb主题put