lmdb

No module named 'lmdb' 的解决办法

孤者浪人 提交于 2019-12-03 04:05:57
在运行python程序时,执行到这一句报错: 尝试多种安装方式均无法解决,如: pip install lmdb conda install lmdb 直到查阅官方文档,找到如下解决办法,完美解决: https://anaconda.org/conda-forge/python-lmdb 注: 该方法只适合安装了conda的环境。 来源: CSDN 作者: 巧克力患者 链接: https://blog.csdn.net/abcd740181246/article/details/83046915

改写 caffe convert_mnist_data.cpp

匿名 (未验证) 提交于 2019-12-03 00:27:02
以下代码来自于caffe的examples/mnist目录,去掉一些google flags的内容,并且把命令行参数去掉了,适合入门阅读 改代码能将mnist数据的images和label转换成lmdb数据,目前只在ubuntu linux 下测试。 #include <gflags/gflags.h> #include <glog/logging.h> #include <google/protobuf/text_format.h> //#if defined(USE_LEVELDB) && defined(USE_LMDB) #include <leveldb/db.h> #include <leveldb/write_batch.h> #include <lmdb.h> //#endif #include <stdint.h> #include <sys/stat.h> #include <fstream> // NOLINT(readability/streams) #include <string> #include "boost/scoped_ptr.hpp" #include "caffe/proto/caffe.pb.h" #include "caffe/util/db.hpp" #include "caffe/util/format.hpp" using

SSD目标检测lmdb数据结构剖析

匿名 (未验证) 提交于 2019-12-03 00:22:01
SSD读取训练集是从LMDB中读取AnnotatedDatum结构的数据,在训练和测试之前,要将图片(img)和XML(label)数据存储为AnnotatedDatum结构,然后将数据经过序列化,存入到LMDB数据库中。训练和测试的时候直接从LMDB读取数据,经过反序列化获取AnnotatedDatum结构的数据,获得训练集的图片和XML数据。 可以参考ssd caffe目录包下的src/caffe/util/io.cpp, tools/convert_annoset.cpp,会对你理解数据结构有很大的作用。 也是C++ 强大的动态内存管理推波助澜。 AnnotatedData数据结构 message AnnotatedDataParameter { } 一、LMDB数据库 LMDB的全称是Lightning Memory-Mapped Database,意为闪电般的内存映射数据库。它文件结构简单,一个文件夹,里面一个数据文件data.mdb,一个锁文件lock.mdb。数据随意复制,随意传输。它的访问简单,不需要运行单独的数据库管理进程,只要在访问数据的代码里引用LMDB库,访问时给文件路径即可。 Caffe引入数据库存放数据集,是为了减少IO开销。LMDB的整个数据库放在一个文件里,避免了文件系统寻址的开销。LMDB使用内存映射的方式访问文件,使得文件内寻址的开销非常小

文件格式之lmdb

匿名 (未验证) 提交于 2019-12-03 00:22:01
LMDB:是一种极大减少IO开销的数据管理方式,特别是对于样本多,但是都是小样本的情况特别合适。该数据格式采用的是一种字典的格式。 使用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_pb2 lmdb_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.label data = caffe.io

caffe生成LMDB时的坑

匿名 (未验证) 提交于 2019-12-03 00:22:01
编辑此文件,写入如下代码,并保存 # !/usr/bin/env sh DATA = data / re / MY = examples / myfile echo " Create train.txt... " rm - rf $MY / train . txt for i in 3 4 5 6 7 do find $DATA / train - name $i *. jpg | cut - d ' / ' - f4 - 5 | sed " s/$/ $i/ " >> $MY / train . txt done echo " Create test.txt... " rm - rf $MY / test . txt for i in 3 4 5 6 7 do find $DATA / test - name $i *. jpg | cut - d ' / ' - f4 - 5 | sed " s/$/ $i/ " >> $MY / test . txt done echo " All done " 然后,运行此脚本 # sudo sh examples/myfile/create_filelist.sh 成功的话,就会在examples/myfile/ 文件夹下生成train.txt和test.txt两个文本文件,里面就是图片的列表清单。 一定要生成这种格式,把train带上

caffe:制作数据集遇到的问题

匿名 (未验证) 提交于 2019-12-03 00:19:01
** 1)可制作两个lmdb文件,一个Data项是原始图像,Label可为0,另一个Data项为分割后的标注图像,Label为0。使用中caffe是支持多个lmdb输入的。 2)将原始图像(如3通道),标注图像(1通道),合在一起成4通道,然后写在一个lmdb中,然后导入后使用Slice层将其切开。这种方法就不能直接使用现有的convert_imageset来转换了,可参考其实现自己写一下。 这个问题没有彻底解决,对image 和label 生成两个lmdb,我没有找到如何使用的方法,待后续了。。。 使用imagemagic 即可解决:用linux脚本处理 for file in *.png do convert $ file ${ file %%.*}.jpg done 解释一下 ${file%%.*} 的用法: ${name%%word} 从name的尾部开始删除与word匹配的最长部分,然后返回剩余部分 当然也可以写成一行: for file in *.png; do convert $file ${file%%.*}.jpg;done 方法类似于问题2 1.保持比例缩放 for file in *.jpg do convert -resize 600 x600 ${ file } ${ file } done 2.不保持比例缩放: for file in *.jpg do

CTPN CRNN-Pytorch 银行卡号识别

匿名 (未验证) 提交于 2019-12-02 23:43:01
通过利用keras以及一些自定义函数进行数据增强, CTPN进行文字定位,CRNN进行文字识别以及Flask Web实现银行卡号码识别 Github地址 由于我并不是机器学习方向,完成此项目只是学校课程需要 所以文章可能只是如何开始并完成这个项目,至于深层次的原理,推荐两篇中文博文 【OCR技术系列之五】自然场景文本检测技术综述(CTPN, SegLink, EAST) 【OCR技术系列之七】端到端不定长文字识别CRNN算法详解 硬件设备以及部分驱动和依赖如下: Ubuntu18.04 + CUDA 8.0.61 + GeForce GTX 960M + NVIDIA Driver 430.14 + Python3.6 + Tensorflow-gpu NVIDIA 430.14驱动下载 CUDA 8.0下载 安装完成后,可以通过下面命令在你的设备中检查 克隆源代码,并生成Python3虚拟环境 git clone https : //github.com/bay1/card-crnn-ctpn.git python3 - m virtualenv venv source venv / bin / activate # 激活虚拟环境 pip install - r requirements . txt - i https : //pypi.tuna.tsinghua.edu.cn

Python读写LMDB文件

匿名 (未验证) 提交于 2019-12-02 22:51:30
LMDB的全称是Lightning Memory-Mapped Database(快如闪电的内存映射数据库),它的文件结构简单,包含一个数据文件和一个锁文件: LMDB文件可以同时由多个进程打开,具有极高的数据存取速度,访问简单,不需要运行单独的数据库管理进程,只要在访问数据的代码里引用LMDB库,访问时给文件路径即可。 让系统访问大量小文件的开销很大,而LMDB使用 内存映射的方式访问文件 ,使得文件内寻址的开销非常小,使用指针运算就能实现。数据库单文件还能减少数据集复制/传输过程的开销。 在python中使用lmdb : linux中,可以使用指令‘ pip install lmdb ’ 安装lmdb包。 1. 生成一个空的lmdb数据库文件 [python] view plain copy import "./train" ,map_size= 1099511627776 2. LMDB数据的添加、修改、删除 [python] view plain copy import "./train" 1099511627776 True '1' 'aaa' '2' 'bbb' '3' 'ccc' '1' '3' 'ddd' 3. 查询lmdb数据库内容 [python] view plain copy import "./train" True ###################

Write numpy arrays to lmdb

五迷三道 提交于 2019-12-02 05:15:22
问题 I'm trying to write some numpy arrays in python to lmdb: import numpy as np import lmdb def write_lmdb(filename): lmdb_env = lmdb.open(filename, map_size=int(1e9)) lmdb_txn = lmdb_env.begin(write=True) X= np.array([[1.0, 0.0], [0.1, 2.0]]) y= np.array([1.4, 2.1]) #Put first pair of arrays lmdb_txn.put('X', X) lmdb_txn.put('y', y) #Put second pair of arrays lmdb_txn.put('X', X+1.6) lmdb_txn.put('y', y+1.2) def read_lmdb(filename): lmdb_env = lmdb.open(filename) lmdb_txn = lmdb_env.begin() lmdb

Check failed: mdb_status == 0 (2 vs. 0) No such file or directory

你离开我真会死。 提交于 2019-12-02 04:05:03
问题 I received the following error while I was training the data. I have tried all the solutions given on the internet and nothing seems to work for me. I have checked paths and size of the lmdb files are non-zero. But the problem still exists. I have no idea how to solve this issue. pooling_ I0411 12:42:53.114141 21769 layer_factory.hpp:77] Creating layer data I0411 12:42:53.114586 21769 net.cpp:91] Creating Layer data I0411 12:42:53.114604 21769 net.cpp:399] data -> data I0411 12:42:53.114645