Caffe代码导读(4):数据集准备

Caffe上面有两个比较简单的例子:MNIST和CIFAR-10,前者是用于手写数字识别的,后者用于小图片分类。这两个数据集可以在Caffe源码框架中用脚本(CAFFE_ROOT/data/mnist/get_mnist.sh和CAFFE_ROOT/data/cifar10/get_cifar10.sh)下载,如下图所示:

$ ./get_cifar10.sh
Downloading...
--2014-12-02 01:20:12--  http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz
Resolving www.cs.toronto.edu... 128.100.3.30
Connecting to www.cs.toronto.edu|128.100.3.30|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 170052171 (162M) [application/x-gzip]
Saving to: “cifar-10-binary.tar.gz”

100%[===========================================================================================================================================================>] 170,052,171  859K/s   in 2m 16s

2014-12-02 01:22:28 (1.20 MB/s) - “cifar-10-binary.tar.gz” saved [170052171/170052171]

Unzipping...
Done.
$ ls
batches.meta.txt  data_batch_1.bin  data_batch_2.bin  data_batch_3.bin  data_batch_4.bin  data_batch_5.bin  get_cifar10.sh  readme.html  test_batch.bin
$ ./get_mnist.sh
Downloading...
--2014-12-02 01:24:25--  http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz
Resolving yann.lecun.com... 128.122.47.89
Connecting to yann.lecun.com|128.122.47.89|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 9912422 (9.5M) [application/x-gzip]
Saving to: “train-images-idx3-ubyte.gz”

100%[===========================================================================================================================================================>] 9,912,422   2.09M/s   in 6.7s

2014-12-02 01:24:33 (1.42 MB/s) - “train-images-idx3-ubyte.gz” saved [9912422/9912422]

--2014-12-02 01:24:33--  http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz
Resolving yann.lecun.com... 128.122.47.89
Connecting to yann.lecun.com|128.122.47.89|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 28881 (28K) [application/x-gzip]
Saving to: “train-labels-idx1-ubyte.gz”

100%[===========================================================================================================================================================>] 28,881      42.0K/s   in 0.7s

2014-12-02 01:24:34 (42.0 KB/s) - “train-labels-idx1-ubyte.gz” saved [28881/28881]

--2014-12-02 01:24:34--  http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz
Resolving yann.lecun.com... 128.122.47.89
Connecting to yann.lecun.com|128.122.47.89|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1648877 (1.6M) [application/x-gzip]
Saving to: “t10k-images-idx3-ubyte.gz”

100%[===========================================================================================================================================================>] 1,648,877    552K/s   in 2.9s

2014-12-02 01:24:39 (552 KB/s) - “t10k-images-idx3-ubyte.gz” saved [1648877/1648877]

--2014-12-02 01:24:39--  http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz
Resolving yann.lecun.com... 128.122.47.89
Connecting to yann.lecun.com|128.122.47.89|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4542 (4.4K) [application/x-gzip]
Saving to: “t10k-labels-idx1-ubyte.gz”

100%[===========================================================================================================================================================>] 4,542       19.8K/s   in 0.2s

2014-12-02 01:24:40 (19.8 KB/s) - “t10k-labels-idx1-ubyte.gz” saved [4542/4542]

Unzipping...
Done.
$ ls
get_mnist.sh  t10k-images-idx3-ubyte  t10k-labels-idx1-ubyte  train-images-idx3-ubyte  train-labels-idx1-ubyte

如果你下载出现问题可以从我的资源处获取,网址http://download.csdn.net/detail/kkk584520/8213463。

原始数据集为二进制文件,需要转换为leveldb或lmdb才能被Caffe识别。转换格式的工具已经集成在Caffe代码中,见CAFFE_ROOT/examples/mnist/convert_mnist_data.cpp

和CAFFE_ROOT/examples/cifar10/convert_cifar_data.cpp,如果对leveldb或lmdb操作不熟悉可以从这两个源代码中学习。我们只需要在CAFFE_ROOT目录中执行两条命令即可:

./examples/mnist/create_mnist.sh

./examples/cifar10/create_cifar10.sh

时间: 2024-10-14 16:25:09

Caffe代码导读(4):数据集准备的相关文章

Caffe代码导读(1):Protobuf例子

Protobuf是一种可以实现内存与外存交换的协议接口.这是由谷歌开发的开源工具,目前研究Caffe源码时用到. 一个软件项目 = 数据结构 + 算法 + 参数,对于数据结构和算法我们都已经有较多研究,但不同开发者对参数管理却各有千秋.有人喜欢TXT格式化的参数文件,有人喜欢BIN简单高效,也有人喜欢图形化界面的直观.不一致的参数管理带来很多问题,例如一个项目组内不同成员必须约定一套统一的参数方案,或者称为通信协议,这样便于模块集成.而Protobuf工具就完美解决了这个问题,关键部分代码自动生

Caffe代码导读(0):路线图

[Caffe是什么?] Caffe是一个深度学习框架,以代码整洁.可读性强.运行速度快著称.代码地址为:https://github.com/BVLC/caffe [博客目的] 从接触Caffe.编译运行.阅读代码.修改代码一路走来,学习到不少内容,包括深度学习理论,卷积神经网络算法实现,数学库MKL,计算机视觉库OpenCV,C++模板类使用,CUDA程序编写-- 本博客目的是为初学者清除代码阅读中的障碍,结合官网文档.融入个人理解.注重动手实践. [如何开始] 在开始阅读Caffe代码之前,

Caffe代码导读(5):对数据集进行Testing

上一篇介绍了如何准备数据集,做好准备之后我们先看怎样对训练好的模型进行Testing. 先用手写体识别例子,MNIST是数据集(包括训练数据和测试数据),深度学习模型采用LeNet(具体介绍见http://yann.lecun.com/exdb/lenet/),由Yann LeCun教授提出. 如果你编译好了Caffe,那么在CAFFE_ROOT下运行如下命令: $ ./build/tools/caffe.bin test -model=examples/mnist/lenet_train_te

Caffe代码导读(3):LevelDB例程

Caffe自带例子Cifar10中使用leveldb存储输入数据,为此我们研究一下怎样使用它.安装步骤可以参考http://blog.csdn.net/kangqing2003/article/details/6658345 Leveldb库提供了一种持续的键值对存储方式.键和值可以为任意字节数组.键存储顺序可由用户定义的比较函数决定. 打开一个数据库 Leveldb数据库有个与文件系统目录相对应的名字.数据库的所有内容都保存在这个目录中.下面例子展示了怎样打开一个数据库,必要时创建它: #in

Caffe代码导读(2):LMDB简介

闪电般的内存映射型数据库管理(LMDB) 简介 LMDB是基于二叉树的数据库管理库,建模基于伯克利数据库的应用程序接口,但做了大幅精简.整个数据库都是内存映射型的,所有数据获取返回数据都是直接从映射的内存中返回,所以获取数据时没有malloc或memcpy发生.因此该数据库仍是非常简单的,因为它不需要自己的页面缓存层,并且非常高效.省内存.它在语义上完全符合ACID(原子性.一致性.隔离性.持久性).当内存映射为只读时,数据库完整性不会被应用程序的迷失指针写破坏.   该库也是线程可见的,支持来

caffe deep learning-我的数据集在Caffe中怎么实现mean subtraction?

问题描述 我的数据集在Caffe中怎么实现mean subtraction? 我有一个数据集存成了blob数据结构,[600000,1,7,256],然后要转成hdf5的文件用于caffe的CNN里, 我知道在caffe里面有一步是mean subtraction, Caffe里面有一个函数可以实现mean subtraction, 但是是针对lmdb文件的,那我的数据集得到mean然后进行mean subtraction,请各位大神帮帮忙!!

R语言中值得学习的7个可视化,附代码段&案例数据集

R编程允许开发者通过一组内置的函数和库来构建可视化以描绘数据. 在分享可视化的技术实现之前,首先着眼如何选择合适的图表类型. 选择合适的图表类型 基本呈现类型有四种: Comparison Composition Distribution Relationship 为了确定哪一种与数据匹配,不妨先从以下几个方面考虑: 在一个图表中显示多少变量? 每个变量显示多少数据点? 基于时间显示值,还是在项目或组之间显示值? 下图恰到好处地描述了如何选择合适的图表类型,出自Andrew Abela博士之手.

Caffe源码导读(7):LRN层的实现

LRN全称为Local Response Normalization,即局部响应归一化层,具体实现在CAFFE_ROOT/src/caffe/layers/lrn_layer.cpp和同一目录下lrn_layer.cu中. 该层需要参数有: norm_region: 选择对相邻通道间归一化还是通道内空间区域归一化,默认为ACROSS_CHANNELS,即通道间归一化: local_size:两种表示(1)通道间归一化时表示求和的通道数:(2)通道内归一化时表示求和区间的边长:默认值为5: alp

关于深度学习(deep learning)的常见疑问 --- 谷歌大脑科学家 Caffe缔造者 贾扬清

问答环节 问:在finetuning的时候,新问题的图像大小不同于pretraining的图像大小,只能缩放到同样的大小吗?" 答:对的:) 问:目前dl在时序序列分析中的进展如何?研究思路如何,能简单描述一下么答:这个有点长,可以看看google最近的一系列machine translation和image description的工作. 问:2个问题:1.目前Caffe主要面对CV或图像的任务,是否会考虑其它任务,比如NLP?2.如果想学习Caffe代码的话,能给一些建议吗?答:Caffe的