首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LMDB:更改已创建的lmdb文件中条目的标签

LMDB:更改已创建的lmdb文件中条目的标签
EN

Stack Overflow用户
提问于 2019-03-11 15:28:02
回答 1查看 316关注 0票数 2

我有一个为caffe制作的大型(> 1TB) lmdb文件。它花了很长时间来生成。现在我想更改一些条目的标签。有没有办法在适当的地方改变标签?有一个解决办法,我可以删除它们,并将它们添加回来。但这将导致所有更改的标签(在我的例子中是一个新类)都在lmdb文件的末尾,我认为这不利于训练。

EN

回答 1

Stack Overflow用户

发布于 2019-03-11 19:55:34

经过一番搜索,终于找到了解决方案。我可以使用https://lmdb.readthedocs.io/en/release/中提到的replace函数。

以下是解决方案的代码片段:

代码语言:javascript
复制
map_size = N
env = lmdb.open(lmdb_name, map_size=map_size) 
with env.begin(write=True) as txn: 
    cursor = txn.cursor() 
    for key, value in cursor: 
        datum = caffe.proto.caffe_pb2.Datum() 
        datum.ParseFromString(value)
        datum_new = caffe.proto.caffe_pb2.Datum()
        datum_new.channels = 3
        datum_new.height = size
        datum_new.width = size
        datum_new.data = datum.data
        datum_new.label = 13
        cursor.replace(key, datum_new.SerializePartialToString())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55097001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档