LMDB 文件的全称是 Lightning Memory-Mapped Database,也就是闪电内存映射数据库,用这种数据可以省去大量读取小文件的时间花费和 IO 花费,可以提高训练的速度。

如果你好奇 LMDB 文件里面存储了什么东西,这篇博客会带你一起看看里面的内容。

查看 LMDB 的内容

  • 1. lmdb 文件的格式
  • 2. 使用 lmdb 库读取
  • 3. 可视化 lmdb

1. lmdb 文件的格式

LMDB 文件里面存储的内容很简单,就是一堆字符串。像是 Python 中的 dictionary 数据那样,它是一个 key 对应一个 value 的。key 是图片的名字,value 是图片的像素数值和标签。

2. 使用 lmdb 库读取

lmdb 文件的读取可以使用 Python 的 lmdb 库。直接使用 pip install lmdb 就可以安装 lmdb 库了。

既然我们知道了 lmdb 里面就是一堆数据集中的图片的名字和像素与标签,并且以 key 和 value 来表示,那我们就可以看看 key 和 value 的值了。

我们导入 lmdb 库,打开文件看看:

import lmdbenv = lmdb.open("csdn_train_lmdb", readonly=True) # 打开文件
txn = env.begin() # 生成处理句柄
cur = txn.cursor() # 生成迭代器指针
for key, value in cur:print('the key:', key)print(str(value[0:10]))print('...' + value[-5:])breakenv.close()

输出后里面的内容为这样,两个值都是字符串类型:

key: '00000000_014.jpg' # '_' 前面的数字是图片的引索值
value: \x08\x03\x10\x80\x02\x18\x80\x02...\x018\x00 # value 是一堆特殊编码的字符,最后面的存放了这张图片的标签

3. 可视化 lmdb

代码:

import lmdb
import caffe
from caffe.proto import caffe_pb2
import cv2 as cvenv = lmdb.open("train_lmdb", readonly=True)
txn = env.begin()
cur = txn.cursor()
datum = caffe_pb2.Datum() # caffe 定义的数据类型for key, value in cur:print(type(key), key)datum.ParseFromString(value) # 反序列化成 datum 对象label = datum.labeldata = caffe.io.datum_to_array(datum)print(data.shape)print(datum.channels)image = data[0]print(type(label))cv.imshow(str(label), image)cv.waitKey(0)cv.destoyAllWindows()
env.close()

效果如下,窗口上显示的数字为标签:

可见,生成 lmdb 文件时,图片会被变成三个通道的灰色图片。


参考博客:

  • Python解析lmdb格式mnist数据集

Caffe:查看并可视化 LMDB 文件相关推荐

  1. Caffe学习系列(11):图像数据转换成db(leveldb/lmdb)文件

    在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致.而在caffe中经常使用的数据类型是lmdb或leveldb,因此就 ...

  2. caffe将图像数据转换成lmdb文件

    一.caffe安装 安装步骤:https://blog.csdn.net/yql_617540298/article/details/82718889 二.caffe将图像数据转换成lmdb文件 之前 ...

  3. Caffe:图像数据转换成ldb(leveldb/lmdb)文件

    转载自:denny的学习专栏(前半部分)和 深度学习文档 在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致.而在caf ...

  4. Caffe源码中layer文件分析

    Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/layer.hpp文件的内 ...

  5. python读取lmdb文件_python将图片转成lmdb格式

    about 本文参考了 在开始前... 先说说几处坑: 虽然安装了caffe,但是 import lmdb 出现error.StackOverflow上的同学们讨论说,要装一个lmdb 2 于是开始装 ...

  6. 图像数据转换成db(leveldb/lmdb)文件(转)

    参考网站:http://www.cnblogs.com/denny402/p/5082341.html 在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格 ...

  7. Caffe小玩意(1)-可视化网络结构

    Caffe小玩意(1)-可视化网络结构 \quad最近在学习Caffe,但是作为曾经的Windows深度用户,还是比较习惯可视化的界面.然而,Caffe当然是在Linux/OS X系统下更好啦,因为一 ...

  8. 网络安全系列-四十一: arkime的docker-compose安装及可视化pcap文件示例

    有了待分析的pcap文件,如何针对pcap文件进行可视化展示,并对pcap文件中的流进行各种查询分析,查看联通图等? 本文基于arkime,来讲解如何基于docker快速搭建环境,并可视化pcap文件 ...

  9. Caffe源码中Solver文件分析

    Caffe源码(caffe version commit: 09868ac , date: 2015.08.15)中有一些重要的头文件,这里介绍下include/caffe/solver.hpp文件的 ...

最新文章

  1. 员工信息增删改查作业
  2. 09丨缓存异常:如何解决缓存和数据库的数据不一致问题
  3. Nginx 服务优化与防盗链
  4. ue 编写linux脚本,UltraEdit23 sh文件 (shell脚本)着色
  5. php中取出数组中指定的值,PHP除开数组中指定的值
  6. Convolutional Sequence to Sequence Learning笔记
  7. 2018安卓应用安全白皮书:超98%安卓应用存有安全风险
  8. 细说业务逻辑(前篇)
  9. 利用caffe的Python接口生成prototxt文件
  10. vue项目使用大华摄像头怎样初始化_海康、大华摄像头chrome高版本实时播放(java集成)...
  11. 浙江大学黄杨思博计算机学院,浙江大学节能减排社会实践与科技竞赛成功-浙江大学本科生院.DOC...
  12. android照片同步到另一部手机,怎样可以把以前手机里的照片导入另一个手机?...
  13. 了解CSS的float高度坍塌的原理,并懂得怎么解决高度坍塌!
  14. 浅谈编程能力的培养与提高——写给编程初学者的话
  15. 广西教育学院计算机技术专业可以当老师吗,广西教育学院老师待遇 广西教育学院好吗...
  16. word表格分开快捷键_在Word 表格的编辑中,快速拆分表格应按快捷键为______。
  17. Note For Linux By Jes(16)-软件安装:原始码与 Tarball
  18. sql server设置外键
  19. HTML+CSS+前端项目
  20. NetSuite ERP的优势是什么?

热门文章

  1. [Win10+Excel365]尽管已启用VBA宏,Excel还是无法运行宏
  2. linux 查看efi分区命令,一次修复linux的efi引导的集中方法总结记录
  3. ASCII 编码对照表 一览表
  4. 实时高分辨率视频抠像
  5. 腾讯云Cannot parse privatekey: unsupported key format问题解决
  6. 学游戏原画都需要掌握哪些软件
  7. 1905 统计子岛屿
  8. “新主”难救美赞臣?
  9. 在中国要想发财的22条秘诀!
  10. Linux上传GitHub【超详细】