我有一个用于caffe的大型(> 1TB)lmdb文件。生成需要很长时间。现在我想更改某些条目的标签。有没有办法改变标签?有一项工作……
经过一番搜索后终于找到了解决方案我可以使用替换功能,如中所述 https://lmdb.readthedocs.io/en/release/ 。
以下是解决方案的代码段:
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())