【问题标题】:Keys in LMDB for Caffe trainingLMDB 中用于 Caffe 训练的键
【发布时间】: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


【解决方案1】:

任何键都应该没问题:

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

Source: Wikipedia

【讨论】:

  • 我已经更新了我的问题。它与 Caffe 以及它如何解释输入数据有关,而不是 LMDB 格式本身。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-05
  • 1970-01-01
  • 1970-01-01
  • 2018-03-30
  • 2017-04-20
  • 1970-01-01
相关资源
最近更新 更多