如何将数据附加到现有的LMDB?

阿森纳狂热者

我有大约100万张图像,一次要在此数据集中添加10000张。

我确定map_size与本文的参考文献有误

使用此行创建集合

env = lmdb.open(Path+'mylmdb', map_size=int(1e12)

每10000个样本使用此行将数据写入文件,其中X和Y是要放入LMDB中的数据的占位符。

env = create(env, X[:counter,:,:,:],Y,counter)


def create(env, X,Y,N):
    with env.begin(write=True) as txn:
        # txn is a Transaction object
        for i in range(N):
            datum = caffe.proto.caffe_pb2.Datum()
            datum.channels = X.shape[1]
            datum.height = X.shape[2]
            datum.width = X.shape[3]
            datum.data = X[i].tostring()  # or .tostring() if numpy < 1.9
            datum.label = int(Y[i])
            str_id = '{:08}'.format(i)

            # The encode is only essential in Python 3
            txn.put(str_id.encode('ascii'), datum.SerializeToString())
        #pdb.set_trace()
    return env

我如何编辑此代码,以便将新数据添加到此LMDB而不替换,因为此当前方法将其替换在同一位置。我已经用env.stat()检查了生成后的长度。

苏迪普·尤维卡(Sudeep Juvekar)

我在上面对我的评论进行扩展。

LMDB中的所有条目都是根据唯一键存储的,并且您的数据库已经包含的键i = 0, 1, 2, ...您需要一种找到每个键的唯一键的方法i最简单的方法是在现有数据库中找到最大的密钥并不断添加。

假设现有键是连续的,

max_key = env.stat()["entries"]

否则,一种更彻底的方法是遍历所有键。检查一下。

max_key = 0
for key, value in env.cursor():
    max_key = max(max_key, key)

最后,只需替换for循环的第7行

str_id = '{:08}'.format(i)

经过

str_id = '{:08}'.format(max_key + 1 + i)

追加到现有数据库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery-如何将数据附加到现有的Select2

来自分类Dev

如何将数据附加到现有的Dropbox文件?

来自分类Dev

如何将数据附加到现有的Excel文件中?

来自分类Dev

如何将数据附加到现有的Dropbox文件?

来自分类Dev

如何将数据附加到现有的 Dropbox 文件?(API v2)

来自分类Dev

如何将数据附加到现有文件

来自分类Dev

将数据附加到现有的 json 文件

来自分类Dev

如何将格式化的字符串附加到现有的String?

来自分类Dev

使用PHP,如何将JSON Blob附加到现有的多级JSON对象

来自分类Dev

如何将Newman htmlextra结果附加到现有的htmlextra报告文件中

来自分类Dev

如何将git bundle附加到现有的存储库签出

来自分类Dev

使用PHP,如何将JSON Blob附加到现有的多级JSON对象

来自分类Dev

如何将现有的 html 元素附加到另一个元素?

来自分类Dev

如何使用Python将数据附加到现有的AVRO文件中

来自分类Dev

如何将数组的新属性添加到现有的json数据

来自分类Dev

如何将新数据追加到现有的配置单元表

来自分类Dev

如何将NullableBooleanField添加到现有的Django数据库中?

来自分类Dev

如何将数据附加到现有数据对象

来自分类Dev

如何将新数据附加到现有文件中

来自分类Dev

如何将链接标签附加到现有标签?

来自分类Dev

是否可以将csv文件中的数据附加到现有的mysql表中

来自分类Dev

是否可以将csv文件中的数据附加到现有的mysql表中

来自分类Dev

JQuery Flot:如何将数据添加到现有的点图而不是重绘

来自分类Dev

如何将现有的SQL Server数据库添加到TFS源代码管理中?

来自分类Dev

将OnClick事件附加到现有的JavaScript按钮

来自分类Dev

将表单标签附加到现有的HTML标签

来自分类Dev

在正确的位置将图像附加到现有的PDF

来自分类Dev

将Nib附加到现有的UITableViewCell

来自分类Dev

如何在Django中将额外的数据附加到现有的序列化器

Related 相关文章

  1. 1

    jQuery-如何将数据附加到现有的Select2

  2. 2

    如何将数据附加到现有的Dropbox文件?

  3. 3

    如何将数据附加到现有的Excel文件中?

  4. 4

    如何将数据附加到现有的Dropbox文件?

  5. 5

    如何将数据附加到现有的 Dropbox 文件?(API v2)

  6. 6

    如何将数据附加到现有文件

  7. 7

    将数据附加到现有的 json 文件

  8. 8

    如何将格式化的字符串附加到现有的String?

  9. 9

    使用PHP,如何将JSON Blob附加到现有的多级JSON对象

  10. 10

    如何将Newman htmlextra结果附加到现有的htmlextra报告文件中

  11. 11

    如何将git bundle附加到现有的存储库签出

  12. 12

    使用PHP,如何将JSON Blob附加到现有的多级JSON对象

  13. 13

    如何将现有的 html 元素附加到另一个元素?

  14. 14

    如何使用Python将数据附加到现有的AVRO文件中

  15. 15

    如何将数组的新属性添加到现有的json数据

  16. 16

    如何将新数据追加到现有的配置单元表

  17. 17

    如何将NullableBooleanField添加到现有的Django数据库中?

  18. 18

    如何将数据附加到现有数据对象

  19. 19

    如何将新数据附加到现有文件中

  20. 20

    如何将链接标签附加到现有标签?

  21. 21

    是否可以将csv文件中的数据附加到现有的mysql表中

  22. 22

    是否可以将csv文件中的数据附加到现有的mysql表中

  23. 23

    JQuery Flot:如何将数据添加到现有的点图而不是重绘

  24. 24

    如何将现有的SQL Server数据库添加到TFS源代码管理中?

  25. 25

    将OnClick事件附加到现有的JavaScript按钮

  26. 26

    将表单标签附加到现有的HTML标签

  27. 27

    在正确的位置将图像附加到现有的PDF

  28. 28

    将Nib附加到现有的UITableViewCell

  29. 29

    如何在Django中将额外的数据附加到现有的序列化器

热门标签

归档