caffe python lmdb读写
来源:互联网 发布:淘宝滥发信息新规则 编辑:程序博客网 时间:2024/05/21 17:36
转自 https://www.cnblogs.com/zhonghuasong/p/7469750.html
caffe中可以采取lmdb健值数据库的方式向网络中输入数据。
所以操作lmdb就围绕“键-值“的方式访问数据库就好了。
Write
我们可以采用cv2来读入自己的图像数据,采用datum格式来存储数据。
Datum is a Google Protobuf Message class used to store data and optionally a label. A Datum can be thought of a as a matrix with three dimensions: width, height, and channel.
import lmdbimport numpy as npimport cv2import caffefrom caffe.proto import caffe_pb2#basic setting# 这个设置用来存放lmdb数据的目录lmdb_file = 'lmdb_data'batch_size = 256# create the lmdb file# map_size指的是数据库的最大容量,根据需求设置lmdb_env = lmdb.open(lmdb_file, map_size=int(1e12))lmdb_txn = lmdb_env.begin(write=True)# 因为caffe中经常采用datum这种数据结构存储数据datum = caffe_pb2.Datum()item_id = -1for 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 # pic_path设置成图像目录, 0表示读入灰度图 data = cv2.imread(pic_path, 0) # label 设置图像的label就行 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 batchif (item_id+1) % batch_size != 0: lmdb_txn.commit() print 'last batch' print (item_id + 1)
Read
import caffeimport lmdbimport numpy as npimport cv2from caffe.proto import caffe_pb2lmdb_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))
阅读全文
0 0
- caffe python lmdb读写
- caffe中用python读写lmdb
- caffe python lmdb
- caffe 数据库LMDB的读写
- Caffe: MNIST 数据集格式转换、用 python 读写 LMDB 数据库
- Python lmdb
- python-lmdb
- caffe LMDB 库学习
- caffe的lmdb
- Caffe convert to lmdb
- 读写 LMDB 数据库
- Caffe: LMDB 及其数据转换
- Caffe中LMDB的使用
- caffe 预处理,图片转为LMDB
- caffe 制作lmdb数据集
- 用Python将多标签数据存入caffe使用的HDF5&LMDB格式
- 【用Python学习Caffe】3. 图像训练测试数据集LMDB的生成
- caffe 利用python API 将数据转成lmdb格式的数据
- Angular增删查练习
- sorted
- (12)Spring AOP通知
- coursera华盛顿1
- 要风度也要温度,对怕冷星人来说这款智能发热外套才是“年度最佳发明” | 钛空舱
- caffe python lmdb读写
- ExecutorService 的理解与使用
- IOS 本地存储NSUserDefaults封装
- java 继承与组合
- ODBC连接字符串
- POJ1002 487-3279【查表】(Bailian1002, Bailian2974)
- 爬虫综述
- JAVA数据类型及位运算符
- 中计播客 | iPhone X评测结果出炉 表现不如iPhone 8