【发布时间】:2018-01-07 04:24:54
【问题描述】:
我是 Caffe 的新手。文档对我的问题主题不清楚。
在 LMDB for Caffe 中创建训练/测试数据库时,数据库中的键是否有意义?
换句话说,Caffe 是使用来自 LMDB 键的任何信息,还是只使用关联的值,而忽略键?
我发现的所有示例都建立了一些数据项枚举,并将成对的 (number-converted-to-string, datum) 放入数据库中。 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 是键值存储,而神经网络需要表格数据,我是否正确?
【问题讨论】:
-
为什么要换钥匙?
-
我想添加有关数据集的调试信息。
标签: python neural-network caffe pycaffe lmdb