前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Caffe中lmdb和leveldb格式数据的读取

Caffe中lmdb和leveldb格式数据的读取

作者头像
王云峰
发布2019-12-25 16:30:27
7820
发布2019-12-25 16:30:27
举报
文章被收录于专栏:Yunfeng's Simple Blog

概述

Caffe里面的一种数据存储和读取方式是使用数据库格式,将数据保存到特定的一个数据库文件中,然后在代码里面整个读入这个数据库文件。Caffe支持的数据库格式包括lmdb和leveldb,可能很多人是因为caffe才知道这两个库的,但其实这两个库也是非常出名的工具。下面就展示下在Caffe里面用Python接口调用生成的LMDB或者LEVELDB格式的文件的代码吧。

LMDB 操作方式

具体方式见如下代码:

代码语言:javascript
复制
import lmdb
env = lmdb.open('pool5-lmdb', readonly=True)
txn = env.begin()
for k, v in txn.cursor():
	print k,v

cur = txn.cursor()
k, v = cur.item()
print k,v
v = txn.get(k)
print v

import sys
sys.path.insert(0, '/data2/yunfeng/caffe20161019/python/')
import caffe
datum = caffe.proto.caffe_pb2.Datum()
datum.ParseFromString(v)
print datum.label, datum.channels, datum.width, datum.height

import numpy as np
data = caffe.io.datum_to_array(datum)
print data.shape

LEVELDB 操作方式:

代码语言:javascript
复制
import leveldb
db = leveldb.LevelDB('pool5-leveldb')
for k, v in db.RangeIter():
	print k,v

v = db.Get(k)
db.Put('new_key', 'new_value')
db.Delete('new_key')

batch = leveldb.WriteBatch();
batch.Put('hello', 'world');
batch.Put('hello again', 'world');
batch.Delete('hello');
db.Write(batch, sync = True);

import sys
sys.path.insert(0, '/data2/yunfeng/caffe20161019/python/')
import caffe
datum = caffe.proto.caffe_pb2.Datum()
datum.ParseFromString(v)
print datum.label, datum.channels, datum.width, datum.height

import numpy as np
data = caffe.io.datum_to_array(datum)
print data.shape
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-10-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • LMDB 操作方式
  • LEVELDB 操作方式:
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档