【caffe】读取lmdb文件中的内容

2024-03-26 16:38
文章标签 读取 内容 caffe lmdb

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

参考: https://www.jb51.net/article/142988.htm
https://blog.csdn.net/jyl1999xxxx/article/details/53942824

# read.py
from PIL import Image
from caffe.proto import caffe_pb2
import lmdb
import numpy as nppath='/home/...../caffe/examples/cifar10/cifar10_test_lmdb'
def read_from_lmdb(lmdb_path, img_save_to):lmdb_env=lmdb.open(lmdb_path)lmdb_txn=lmdb_env.begin()lmdb_cursor=lmdb_txn.cursor()datum=caffe_pb2.Datum()datum_index=0for key,value in lmdb_cursor:datum.ParseFromString(value)label=datum.labeldata=datum.datachannel=datum.channelsprint ('Datum channels: %d' % datum.channels)print ('Datum width: %d' % datum.width)print ('Datum height: %d' % datum.height)print ('Datum data length: %d' % len(datum.data))print ('Datum label: %d' % datum.label)size=datum.width*datum.heightpixles1=datum.data[0:size]pixles2=datum.data[size:2*size]pixles3=datum.data[2*size:3*size]#Extract images of different channelimage1=Image.frombytes('L', (datum.width, datum.height), pixles1)image2=Image.frombytes('L', (datum.width, datum.height), pixles2)image3=Image.frombytes('L', (datum.width, datum.height), pixles3)image4=Image.merge("RGB",(image3,image2,image1))image4.save(img_save_to+str(key)+".jpg")datum_index+=1print "extracted"lmdb_env.close()read_from_lmdb(path, 'pic')

执行文件

python read.py

则能看到打印输出和获得的图片文件

.......
09998,1
(3, 32, 32)
09999,7
(3, 32, 32)
Datum channels: 3
Datum width: 32
Datum height: 32
Datum data length: 3072
Datum label: 3
extracted
......

这篇关于【caffe】读取lmdb文件中的内容的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定

C#高效实现Word文档内容查找与替换的6种方法

《C#高效实现Word文档内容查找与替换的6种方法》在日常文档处理工作中,尤其是面对大型Word文档时,手动查找、替换文本往往既耗时又容易出错,本文整理了C#查找与替换Word内容的6种方法,大家可以... 目录环境准备方法一:查找文本并替换为新文本方法二:使用正则表达式查找并替换文本方法三:将文本替换为图

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据

Linux从文件中提取特定内容的实用技巧分享

《Linux从文件中提取特定内容的实用技巧分享》在日常数据处理和配置文件管理中,我们经常需要从大型文件中提取特定内容,本文介绍的提取特定行技术正是这些高级操作的基础,以提取含有1的简单需求为例,我们可... 目录引言1、方法一:使用 grep 命令1.1 grep 命令基础1.2 命令详解1.3 高级用法2

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

linux批量替换文件内容的实现方式

《linux批量替换文件内容的实现方式》本文总结了Linux中批量替换文件内容的几种方法,包括使用sed替换文件夹内所有文件、单个文件内容及逐行字符串,强调使用反引号和绝对路径,并分享个人经验供参考... 目录一、linux批量替换文件内容 二、替换文件内所有匹配的字符串 三、替换每一行中全部str1为st

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

Python使用openpyxl读取Excel的操作详解

《Python使用openpyxl读取Excel的操作详解》本文介绍了使用Python的openpyxl库进行Excel文件的创建、读写、数据操作、工作簿与工作表管理,包括创建工作簿、加载工作簿、操作... 目录1 概述1.1 图示1.2 安装第三方库2 工作簿 workbook2.1 创建:Workboo