我是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是键值存储,而神经网络需要表格数据?