我试图在我自己的lmdb数据库中为pyffe中的caffe编辑标签:
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:达到了环境贴图限制
当我试图通过它的键删除记录时,我遇到了同样的错误:
lmdb_txn.delete(key)
任何人都能解释我,我做错了吗?
答案 0 :(得分:0)
问题是当您执行写入操作时,env的当前映射大小无法适应数据库的增长。 lmdb提供的默认映射大小很低。所以你必须在打开你的环境时指定更大的地图大小...使用 lmdb.open(path,map_size = size),其中包含地图大小为env的大小。
您还可以使用env对象上的set_mapsize(map_size)函数来增加地图大小。您可以在以下链接lmdb python docs中找到此功能....为了适应未来数据库的增长,您可以提供地图大小到1GB的大价值......