lmdb转换「建议收藏」

lmdb转换「建议收藏」一、LMDB介绍:lmdb数据库LMDB全称为LightningMemory-MappedDatabase,就是非常快的内存映射型数据库,LMDB使用内存映射文件,可以提供更好的输入/输出性能,对于用于神经网络的大型数据集(比如ImageNet),可以将其存储在LMDB中。LMDB属于key-value数据库,而不是关系型数据库(比如MySQL),LMDB提供key-value存储,其中每个键值对都是我们数据集中的一个样本。LMDB的主要作用是提供数据管理,可以将各种

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、LMDB 介绍:lmdb 数据库

LMDB 全称为 Lightning Memory-Mapped Database,就是非常快的内存映射型数据库,LMDB使用内存映射文件,可以提供更好的输入/输出性能,对于用于神经网络的大型数据集( 比如 ImageNet ),可以将其存储在 LMDB 中。

LMDB属于key-value数据库,而不是关系型数据库( 比如 MySQL ),LMDB提供 key-value 存储,其中每个键值对都是我们数据集中的一个样本。LMDB的主要作用是提供数据管理,可以将各种各样的原始数据转换为统一的key-value存储。

LMDB效率高的一个关键原因是它是基于内存映射的,这意味着它返回指向键和值的内存地址的指针,而不需要像大多数其他数据库那样复制内存中的任何内容。

LMDB不仅可以用来存放训练和测试用的数据集,还可以存放神经网络提取出的特征数据。如果数据的结构很简单,就是大量的矩阵和向量,而且数据之间没有什么关联,数据内没有复杂的对象结构,那么就可以选择LMDB这个简单的数据库来存放数据。

LMDB的文件结构很简单,一个文件夹,里面是一个数据文件和一个锁文件。数据随意复制,随意传输。它的访问简单,不需要单独的数据管理进程。只要在访问代码里引用LMDB库,访问时给文件路径即可。

二、LMDB python 基本操作:LMDB 的基本函数

import lmdb

#打开数据库
env = lmdb.open('E:/Data/data_lmdb_release/validation')

#建立事务
txn = env.begin()

#查询数据库
print(txn.get(('num-samples').encode()))

#遍历
# for key, value in txn.cursor():
#     print(str(key).encode())
    
#关闭数据库
env.close()

三、数据集转lmdb:https://github.com/clovaai/deep-text-recognition-benchmark

该github工程下的create_lmdb_dataset.py文件即可实现。

(1)输入:图片和标注文件,标注文件的格式为:图片名称 标注内容。

(2)输出:1)image-xxxxx:图片数据,二进制格式;2)label-xxxxx:label Byte格式;3)num_samples:样本数量,Byte格式。

(3)Byte格式数据转为字符串:byte_str.decode()。

(4)二进制图片转RGB:

image = (txn.get(('image-000000001').encode()))
print(image)
img = Image.open(io.BytesIO(image)).convert('RGB') #.convert('L') 灰度图
#img = Image.open(six.BytesIO(image)).convert('RGB') #.convert('L') 灰度图
print(img)
print(np.array(img).shape)
img.show()
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/187771.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • c++const用法_const头文件

    c++const用法_const头文件C++——const

  • Iris数据集免费下载[通俗易懂]

    Iris数据集免费下载[通俗易懂]CSDN下载的iris数据集都需要积分和币,这里我提供百度云链接免费下载链接:https://pan.baidu.com/s/1ReA5RjAUvph0BYyYIHBlYg提取码:2grr恳请下载好的小伙伴点赞留言,蟹蟹更多AI资源请关注公众号:大胡子的AI欢迎各位AI爱好者加入群聊交流学习:882345565(内有大量免费资源哦!)…

    2022年10月17日
  • 常见音频编码格式解析

    常见音频编码格式解析常见音频编码格式解析常见音频编码格式解析MP3编码格式1MP3概述2MPEG音频压缩基础3MPEGLayer3编解码的基本原理4整个MP3文件结构41ID3V242音频数据帧43ID3v1AAC编码格式1AAC概述2AAC扩展名3AAC规格4AAC特点5AAC音频格式解析51AAC音频格式有ADIFADTSLATM52ADIF和ADTS的header53ADIF和

  • 微服务调用链路追踪_区块链地址追踪

    微服务调用链路追踪_区块链地址追踪目录第一章Sleuth+Zipkin介绍1.1、什么是Sleuth1.2、什么是Zipkin第二章Sleuth+Zipkin入门案例2.1、项目准备与启动2.2、搭Zipkin服务端2.3、搭Zipkin客户端2.4、链路跟踪的测试配套资料,免费下载链接:https://pan.baidu.com/s/1la_3-HW-UvliDRJzfBcP_w提取码:lxfx复制这段内容后打开百度网盘手机App,操作更方便哦第一章Sleuth+Zipkin介绍1.1、什么是Sleuth我们已经接触

    2022年10月28日
  • phpsotrm 2021激活码3月最新在线激活

    phpsotrm 2021激活码3月最新在线激活,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 封装是怎么实现的_ad13怎么添加封装

    封装是怎么实现的_ad13怎么添加封装1.封装的概念(1)将东西包装在一起,然后以新的完整的形式呈现出来(即将属性和方法封装到类里面,通过添加访问修饰符来限制访问权限,以达到信息隐藏的目的)(2)信息隐藏:隐藏对象的实现细节,不让外部

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号