Python lmdb
2015-03-05 09:20
302 查看
** 转载或引用请注明出处,ayst123的专栏(/article/3721289.html), 谢谢 !
最近从 leveldb 转到 lmdb, 需要用python实现。观察caffe里,db里 保存的都是datum format, 所以datum就变成了中转中心。
用python 调用levedb的函数在这里
这里是 lmdb documents
这里,先建立lmdb的instance, db_img。 然后开始txn(可能有很多个开始?)。 put 存放,最后一定注意要commit()。不然根本没有存进去,检查下生成的lmdb文件就能看出。最后,close()
这里生成datum是用caffe自带的函数,做io.py里,叫caffe.io.array_to_datum, 将array变成datum.
Note:
datum存的时候一定要用datum.SerializeToString(), 将它变成string()
每一次commit 后,需要再定义一次 txn=env.begin(write=True)
for loop 外面最后再 commit
Note:
cursor 第一个是空的, iternext()后是第一个值
cursor = txn.cursor()
for ( idx, (key, value) ) in enumerate(cursor):
…………….
这就可以循环找了
** 转载或引用请注明出处,ayst123的专栏(/article/3721289.html), 谢谢 !
最近从 leveldb 转到 lmdb, 需要用python实现。观察caffe里,db里 保存的都是datum format, 所以datum就变成了中转中心。
用python 调用levedb的函数在这里
这里是 lmdb documents
write
[code]db_img = lmdb.Environment(lmdb_img_name,map_size=int(1e12)) txn_img = db_img.begin(write=True,buffers=True) datum_img = getImgDatum(img_path) txn_img.put(key,datum_img.SerializeToString()) txn_img.commit() db_img.close()
这里,先建立lmdb的instance, db_img。 然后开始txn(可能有很多个开始?)。 put 存放,最后一定注意要commit()。不然根本没有存进去,检查下生成的lmdb文件就能看出。最后,close()
这里生成datum是用caffe自带的函数,做io.py里,叫caffe.io.array_to_datum, 将array变成datum.
Note:
datum存的时候一定要用datum.SerializeToString(), 将它变成string()
分段write
[code]for ind,obj in enumerate(list): if ind%100=0: txn.commit() txn = env.begin(write=True) txn.commit() env.close()
每一次commit 后,需要再定义一次 txn=env.begin(write=True)
for loop 外面最后再 commit
Read
[code]img_lmdb = imdb.open("name") txn= img_lmdb.begin() cursor = txn.cursor() cursor.iternext() key = cursor.key() value = cursor.value() datum = caffe_pb2.Datum() datum.ParseFromString(value)
Note:
cursor 第一个是空的, iternext()后是第一个值
循环
txn = …cursor = txn.cursor()
for ( idx, (key, value) ) in enumerate(cursor):
…………….
这就可以循环找了
** 转载或引用请注明出处,ayst123的专栏(/article/3721289.html), 谢谢 !
相关文章推荐
- caffe中用python读写lmdb
- caffe使用python创建lmdb
- Python操作SQLite/MySQL/LMDB/LevelDB
- Python3 转换 SVHN 数据集成 lmdb 格式
- python读写LMDB文件的方法
- LMDB数据集生成-Python
- caffe-python lmdb 读写(转)
- 【Python配置】lmdb使用
- Python操作SQLite/MySQL/LMDB/LevelDB
- http://deepdish.io/2015/04/28/creating-lmdb-in-python/
- VOC2012 分割数据 转 lmdb 格式 python 代码
- caffe python lmdb读写
- caffe用python加载数据,包含各类数据类型(LMDB,image,HDF5等共五种全部格式))--caffe学习(3)
- python-lmdb
- Caffe: MNIST 数据集格式转换、用 python 读写 LMDB 数据库
- caffe python lmdb
- caffe python lmdb读写
- python中读写LMDB数据库
- 用Python将多标签数据存入caffe使用的HDF5&LMDB格式
- Caffe学习笔记(二):使用Python生成caffe所需的lmdb文件和txt列表清单文件