caffe dataset
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相关推荐
- Windows Caffe中MNIST数据格式转换实现
Caffe源码中src/caffe/caffe/examples/mnist/convert_mnist_data.cpp提供的实现代码并不能直接在Windows下运行,这里在源码的基础上进行了改写, ...
- Caffe源码中各种依赖库的作用及简单使用
1. Boost库:它是一个可移植.跨平台,提供源代码的C++库,作为标准库的后备. 在Caffe中用到的Boost头文件包括: (1).shared_ptr.hpp:智能指针,使用它可以不 ...
- caffe finetune predict and classify the lung nodule( 肺结节的分类)
引言--做了什么?如上一篇博文所提到用ImageNet图像来帮助医学图像的识别,但是ImageNet里面的图像(二维,彩色)没有医学图像,包含一些诸如鸟类.猫.狗.直升机等物体的识别,与医学图像(二维 ...
- Caffe Windows版本的编译
2019独角兽企业重金招聘Python工程师标准>>> 1:Caffe的主版本只支持Linux,所以要下载专门的Caffe Windows版本,网址为 https://github. ...
- python caffe 在师兄的代码上修改成自己风格的代码
首先,感谢师兄的帮助.师兄的代码封装成类,流畅精美,容易调试.我的代码是堆积成的,被师兄嘲笑说写脚本.好吧!我的代码只有我懂,哈哈! 希望以后代码能写得工整点.现在还是让我先懂.这里,我做了一个简单的 ...
- FCN制作自己的数据集、训练和测试 caffe
原文:http://blog.csdn.net/zoro_lov3/article/details/74550735 FCN制作自己的数据集.训练和测试全流程 花了两三周的时间,在导师的催促下,把FC ...
- caffe显示特征图
转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ 以下部分代码是根据caffe的python接口,从一次forwo ...
- Caffe: LMDB 及其数据转换
from: http://www.2cto.com/kf/201607/527860.html Preface 这两天文章也看了不少,Caffe.Theano.Torch 也都用过.其实个人认为,这本 ...
- Caffe CNN特征可视化
Caffe CNN特征可视化 转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ 以下部分代码是根据caffe的py ...
- Caffe学习系列(23):如何将别人训练好的model用到自己的数据上
caffe团队用imagenet图片进行训练,迭代30多万次,训练出来一个model.这个model将图片分为1000类,应该是目前为止最好的图片分类model了. 假设我现在有一些自己的图片想进行分 ...
最新文章
- UVALive - 7270 Osu! Master
- 构建高性能分布式搜索引擎(Memcached-基础篇)一
- 客制化键盘编程_指尖运动会,谁是打字冠军,双十一机械键盘推荐
- PHP方向+go+rpc+swoole,瞅瞅 PHP+Swoole 作为网络通信框架
- mysql8解决区分大小写问题_球磨机“包球”和“饱磨”分不清?点进来快速区分,解决问题...
- Java学习笔记-Spring IoC 通过XML把Bean给IoC容器
- Remoting疑惑续集之再续
- 经济学家Alex Kruger:DeFi是比特币的自然演变
- 三维图像处理_【图像处理】用于三维物体检测的三维骨干网络
- codeforces#237_div2_B Marathon
- VB6.0软件安装包(永久),适用于Windows各系统附安装教程
- 孙玄:基于CAP模型设计企业级真正高可用的分布式锁
- 邮件服务器的功能以及相关工作原理
- SolidWorks迈迪轴生成器使用注意事项
- linux中,ls -l命令显示的total的含义。
- java中print的含义_【转】Java中print、printf、println的区别详解
- 正确的计算机锁屏方法快捷键,电脑锁屏快捷键?(电脑快速锁屏以及酷炫快速切换窗口的方法!)...
- 转 shell编程100例
- error LNK2019:和error LNK2001:
- 数据库基础_关系与关系模式