lmdb

操作lmdb数据库

import numpy as np
import lmdbN=10
map_size = 10485760
#map_size:max size (bytes) the database may grow to.
#If database grows lager than map_size,an exception will be raised
#On 64-bit there is no penalty for making this huge(say 1TB).Must be <2GB on 32-bit
env = lmdb.open('lmdbtest', map_size=map_size)
#write
with env.begin(write=True) as txn:# txn is a Transaction objectfor i in range(N):str_id = '{:08}'.format(i)# The encode is only essential in Python 3txn.put(str_id.encode('ascii'), 'a'+str_id)
#read
with env.begin() as txn:cursor = txn.cursor()for key, value in cursor:print(key, value)#delete,将'cifar10_train_lmdb'数据库中的前25000条数据删除
env = lmdb.open('cifar10_train_lmdb',map_size=map_size)
print(env.stat())
i=0
with env.begin(write=True,buffers=True) as txn:cursor = txn.cursor()for key, value in cursor:if i<25000 :txn.delete(key)i=i+1 print(env.stat())

执行上述python脚本,生成数据库lmdbtest,并输出:

('00000000', 'a00000000')
('00000001', 'a00000001')
('00000002', 'a00000002')
('00000003', 'a00000003')
('00000004', 'a00000004')
('00000005', 'a00000005')
('00000006', 'a00000006')
('00000007', 'a00000007')
('00000008', 'a00000008')
('00000009', 'a00000009')
{'branch_pages': 3L, 'leaf_pages': 296L, 'overflow_pages': 50000L, 'psize': 4096L, 'depth': 3L, 'entries': 50000L}
{'branch_pages': 3L, 'leaf_pages': 149L, 'overflow_pages': 25000L, 'psize': 4096L, 'depth': 3L, 'entries': 25000L}

图片生成caffe的lmdb格式的输入数据

准备:将图片数据下载到$CAFFE_EXP/images目录下
1.制作train.txt,并给每个图片添加标签

find  $CAFFE_EXP/images -name *.png | cut -d '/' -f2-3 > train.txt

给每个样本添加标签,执行less train.txt显示如下

images/cat.png 1
images/dog.png 2
...

2.使用caffe的convert_imageset工具将图片转化为lmdb格式数据库

LOG_logtostderr=1 ../tools/convert_imageset \
    --shuffle \
../examples/mnist/createlmdbtest/ \
    train.txt \
    train_lmdb

详细可查看caffe中的脚本工具create_imagenet.sh

另外,将图片转成大小为256x256的格式的工具还有convert,需要先安装工具ImageMagick,执行sudo yum install ImageMagick即可
。(注明使用bash非sh)

#!/bin/bash
for name in images/*.png; doecho $nameconvert -resize 256x256\! $name $name
done

上述功能也集成在caffe的convert_imageset工具中。

数据集

CIFAR-10
60000张32x32的彩色图片,这些图片分为10类,每类6000张,其中50000张构成训练集,10000张构成测试集。 从该数据集的10类中分别随机抽取10张图片显示如下:

(图片来自该数据集官网)
MNIST
0-9的手写图片共70,000张,其中60,000张构成训练集,10,000构成测试集。每张图片大小为28*28.

mnistdataset 官网
ImageNet 数据集(详见这里)

caffe dataset相关推荐

  1. Windows Caffe中MNIST数据格式转换实现

    Caffe源码中src/caffe/caffe/examples/mnist/convert_mnist_data.cpp提供的实现代码并不能直接在Windows下运行,这里在源码的基础上进行了改写, ...

  2. Caffe源码中各种依赖库的作用及简单使用

    1.      Boost库:它是一个可移植.跨平台,提供源代码的C++库,作为标准库的后备. 在Caffe中用到的Boost头文件包括: (1).shared_ptr.hpp:智能指针,使用它可以不 ...

  3. caffe finetune predict and classify the lung nodule( 肺结节的分类)

    引言--做了什么?如上一篇博文所提到用ImageNet图像来帮助医学图像的识别,但是ImageNet里面的图像(二维,彩色)没有医学图像,包含一些诸如鸟类.猫.狗.直升机等物体的识别,与医学图像(二维 ...

  4. Caffe Windows版本的编译

    2019独角兽企业重金招聘Python工程师标准>>> 1:Caffe的主版本只支持Linux,所以要下载专门的Caffe Windows版本,网址为 https://github. ...

  5. python caffe 在师兄的代码上修改成自己风格的代码

    首先,感谢师兄的帮助.师兄的代码封装成类,流畅精美,容易调试.我的代码是堆积成的,被师兄嘲笑说写脚本.好吧!我的代码只有我懂,哈哈! 希望以后代码能写得工整点.现在还是让我先懂.这里,我做了一个简单的 ...

  6. FCN制作自己的数据集、训练和测试 caffe

    原文:http://blog.csdn.net/zoro_lov3/article/details/74550735 FCN制作自己的数据集.训练和测试全流程 花了两三周的时间,在导师的催促下,把FC ...

  7. caffe显示特征图

    转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ 以下部分代码是根据caffe的python接口,从一次forwo ...

  8. Caffe: LMDB 及其数据转换

    from: http://www.2cto.com/kf/201607/527860.html Preface 这两天文章也看了不少,Caffe.Theano.Torch 也都用过.其实个人认为,这本 ...

  9. Caffe CNN特征可视化

    Caffe CNN特征可视化 转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ 以下部分代码是根据caffe的py ...

  10. Caffe学习系列(23):如何将别人训练好的model用到自己的数据上

    caffe团队用imagenet图片进行训练,迭代30多万次,训练出来一个model.这个model将图片分为1000类,应该是目前为止最好的图片分类model了. 假设我现在有一些自己的图片想进行分 ...

最新文章

  1. UVALive - 7270 Osu! Master
  2. 构建高性能分布式搜索引擎(Memcached-基础篇)一
  3. 客制化键盘编程_指尖运动会,谁是打字冠军,双十一机械键盘推荐
  4. PHP方向+go+rpc+swoole,瞅瞅 PHP+Swoole 作为网络通信框架
  5. mysql8解决区分大小写问题_球磨机“包球”和“饱磨”分不清?点进来快速区分,解决问题...
  6. Java学习笔记-Spring IoC 通过XML把Bean给IoC容器
  7. Remoting疑惑续集之再续
  8. 经济学家Alex Kruger:DeFi是比特币的自然演变
  9. 三维图像处理_【图像处理】用于三维物体检测的三维骨干网络
  10. codeforces#237_div2_B Marathon
  11. VB6.0软件安装包(永久),适用于Windows各系统附安装教程
  12. 孙玄:基于CAP模型设计企业级真正高可用的分布式锁
  13. 邮件服务器的功能以及相关工作原理
  14. SolidWorks迈迪轴生成器使用注意事项
  15. linux中,ls -l命令显示的total的含义。
  16. java中print的含义_【转】Java中print、printf、println的区别详解
  17. 正确的计算机锁屏方法快捷键,电脑锁屏快捷键?(电脑快速锁屏以及酷炫快速切换窗口的方法!)...
  18. 转 shell编程100例
  19. error LNK2019:和error LNK2001:
  20. 数据库基础_关系与关系模式

热门文章

  1. hdu--2660--二维费用背包
  2. Memcache的最佳实践方案
  3. Bran的内核开发指南_中文版
  4. redmine-1.2.2安装服务(附图)
  5. 使用JSON作为函数的参数(转载)
  6. ASP.NET 取得 Request URL 的各个部分
  7. MySQL集群Cluster详解(一)——基本原理
  8. NYOJ--448--寻找最大数
  9. php---遍历一个数组获得一个新的数据结构
  10. 定位日站大法之-社会工程学