lmdb数据读写

WRITE:

import lmdb
import numpy as np import cv2 import caffe from caffe.proto import caffe_pb2 #basic setting lmdb_file = 'lmdb_data' batch_size = 256 # create the leveldb file lmdb_env = lmdb.open(lmdb_file, map_size=int(1e12)) lmdb_txn = lmdb_env.begin(write=True) datum = caffe_pb2.Datum() item_id = -1 for x in range(1000): item_id += 1 #prepare the data and label data = np.ones((3,64,64), np.uint8) * (item_id%128 + 64) #CxHxW array, uint8 or float label = item_id%128 + 64 # save in datum datum = caffe.io.array_to_datum(data, label) keystr = '{:0>8d}'.format(item_id) lmdb_txn.put( keystr, datum.SerializeToString() ) # write batch if(item_id + 1) % batch_size == 0: lmdb_txn.commit() lmdb_txn = lmdb_env.begin(write=True) print (item_id + 1) # write last batch if (item_id+1) % batch_size != 0: lmdb_txn.commit() print 'last batch' print (item_id + 1)

READ
import caffe
import lmdb
import numpy as np import cv2 from caffe.proto import caffe_pb2 lmdb_env = lmdb.open('lmdb_data') lmdb_txn = lmdb_env.begin() lmdb_cursor = lmdb_txn.cursor() datum = caffe_pb2.Datum() for key, value in lmdb_cursor: datum.ParseFromString(value) label = datum.label data = caffe.io.datum_to_array(datum) #CxHxW to HxWxC in cv2 image = np.transpose(data, (1,2,0)) cv2.imshow('cv2', image) cv2.waitKey(1) print('{},{}'.format(key, label))

转载于:https://www.cnblogs.com/kisstea/p/5315659.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值