文件格式之lmdb

2024-04-20 01:32
文章标签 文件格式 lmdb

本文主要是介绍文件格式之lmdb,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

LMDB:是一种极大减少IO开销的数据管理方式,特别是对于样本多,但是都是小样本的情况特别合适。该数据格式采用的是一种字典的格式。

对于训练神经网络,数据类型复杂多样,有二进制文件,文本文件,编码后的图像文件和JPEG或PNG等等


使用caffe对数据进行处理时,需要将图片转化为lmdb格式的。

求助百度百科,无词条,求助wikipedia,成功,地址.
lmdb 是Lightning Memory-Mapped Database的缩写。
LMDB示例文件为
这里写图片描述
它包含一个数据文件和一个锁文件。

python 操作

参考教程1,教程2和教程3
python module 为lmdb
直接通过pip进行安装

pip install lmdb
  • 1

读 LMDB

import caffe
import lmdb
import numpy as np
import cv2
from 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.labeldata = caffe.io.datum_to_array(datum)#CxHxW to HxWxC in cv2image = np.transpose(data, (1,2,0))cv2.imshow('cv2', image)cv2.waitKey(1)print('{},{}'.format(key, label))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

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 lmdb 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 labeldata = np.ones((3,64,64), np.uint8) * (item_id%128 + 64) #CxHxW array, uint8 or floatlabel = item_id%128 + 64# save in datumdatum = caffe.io.array_to_datum(data, label)keystr = '{:0>8d}'.format(item_id)lmdb_txn.put( keystr, datum.SerializeToString() )# write batchif(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)

这篇关于文件格式之lmdb的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/918956

相关文章

Android raw,assets目录源使文件格式使用

播放raw目录下的mp3文件: MediaPlayer mediaPlayer1;mediaPlayer1 = MediaPlayer.create(this, R.raw.boot); //文件路径 /raw/boot.mp3mediaPlayer1.start();mediaPlayer1.stop(); 读取assets目录下图片资源文件: <Im

Excel中.xls和.xlsx文件格式的区别,及C++操作Excel文件

‌文件结构和兼容性‌: XLS是Excel 97-2003版本的文件格式,而XLSX是Excel 2007及以上版本的文件格式。XLS格式是向下兼容的,意味着较新的Excel版本可以打开XLS文件,但较旧的版本无法打开XLSX文件。相反,XLSX格式是向上兼容的,即较新的Excel版本可以打开XLSX和XLS格式的文件‌12。 ‌功能和兼容性‌: XLSX格式支持更多的函数和公式,如SUMIFS

pdf转word怎么转换?2024快速进行文件格式转换的几款软件

pdf转word怎么转换?2024快速进行文件格式转换的几款软件 将PDF文件转换为Word文档是日常工作中常见的需求,尤其是当你需要编辑或重新利用PDF中的内容时。市面上有许多软件可以帮助你轻松完成PDF转Word的任务,以下是五款值得推荐的软件,它们可以帮助你快速、高效地进行文件格式转换。 1.迅捷PDF转换器 这是一个非常简单方便好上手的PDF编辑和转换工具,功能强大且使用简单。它不

js 解决由于#65279(bom文件格式)产生的空白行

把以下代码放到HTML页面的head标签里就行了: <script> var a=document.body.innerHTML; document.body.innerHTML=a.replace(/\ufeff/g,''); </script>

干货分享|分享一款免费的文件格式转换神器File Converter

下载地址:File Converter - Convert your files in just 2 clicks! 工具介绍: 使用方法:下载和操作非常便捷。下图演示如何将PDF文件转换为docx文件。 注:如果不想下载软件File Converter,还可以使用Speedpdf进行线上转换,链接如下: Speedpdf - 提供免费PDF转换器、编辑器、阅读器、下载、分享的服务

cad导出图片格式怎么导出?5个软件帮助你快速转换文件格式

cad导出图片格式怎么导出?5个软件帮助你快速转换文件格式 将CAD文件导出为图片格式可以帮助你更方便地展示、分享或打印设计图纸。CAD(Computer-Aided Design)文件通常以DWG或DXF格式保存,而要将它们转换为常见的图片格式(如PNG、JPEG或BMP),你可以使用以下五种软件,这些软件不仅操作简单,还能确保高质量的输出。 迅捷CAD转换器 这是一款非常简单方便实用的

详细解析MATLAB和Simulink中的文件格式:mat, mdl, mexw32, 和 m 文件

matlab 探索MATLAB和Simulink中的文件格式:MAT, MDL, MEXW32, 和 M 文件**MAT 文件 (.mat)****MDL 文件 (.mdl)****MEX 文件 (.mexw32/.mexw64)****M 文件 (.m)****总结** 探索MATLAB和Simulink中的文件格式:MAT, MDL, MEXW32, 和 M 文

yq 配置文件格式转换工具

在现代开发和运维的世界中,处理和转换不同格式的数据文件如 YAML、JSON、XML、CSV 等是日常任务。文件格式的多样性和复杂性常常给开发者带来不小的挑战。在这种情况下,强大的命令行工具能够极大地简化工作流程,本文主要介绍一款基于Go实现处理 YAML、JSON、XML、CSV、TOML 的命令行工具yq。 1 安装 go yq 1)安装 go 编译器 yq 依赖的 go 版本是 1.2

点云文件格式

点云文件是用于存储三维空间中点的位置信息的文件格式,这些点可以代表物理对象表面上的点,物体内部的点、空间中任何类型的点。 属性包括点的X,Y,Z坐标,颜色、法线向量、强度值。 常见的点云文件格式: PLY(Polygon File Format):这是一种以ASCII或二进制格式存储点云数据的文件格式,常用于存储三维模型。 PCD(Point Cloud Data):这是一种以ASCII

Caffe下如何使用将自己的图像数据转换为lmdb格式

1. 新建文件夹caffe/data/myself/; 2. 继续在myself文件夹下新建两个文件夹:caffe/data/myself/train,caffe/data/myself/val; 3. 在train文件夹下放需要转换格式的训练图像集,在val文件夹中放val图像集; 4. 图像大小可能不符合设计神经网络的输入要求,需要将图像resize一下。如手写字符识别是28*28,