我正在尝试在我自己的lmdb数据库中为caffe在python中编辑标签:
def WriteLMDB(lmdbpath):
lmdb_env = lmdb.open(lmdbpath)
lmdb_txn = lmdb_env.begin(write=True)
lmdb_cursor = lmdb_txn.cursor()
datum = caffe_pb2.Datum()
for key, value in lmdb_cursor:
datum.ParseFromString(value)
datum.label = 100
lmdb_txn.put(key, datum.SerializeToString())
lmdb_txn.commit
但当我运行它时,我有一个错误:
mdb_put: MDB_MAP_FULL: Environment mapsize limit reached
当我试图按记录的键删除记录时,也出现了相同的错误:
^{pr2}$谁能解释一下,我做错了什么?在
问题是在执行写操作时,env的当前映射大小无法适应数据库的增长。lmdb提供的默认映射大小是低的。所以你必须指定更大的地图大小时,打开你的环境。。。使用lmdb.打开(path,map_size=size)其中size包含env的map size。。在
也可以使用函数set_mapsize(map_size)对env object增加贴图大小。。您可以在下面的链接中找到这个函数lmdb python docs….为了适应未来数据库的增长,您可以将映射大小设置为1GB之类的大值。。。在
相关问题 更多 >
编程相关推荐