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

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

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

[plain] view plaincopyprint?

  1. $ ./get_cifar10.sh
  2. Downloading...
  3. --2014-12-02 01:20:12--  http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz
  4. Resolving www.cs.toronto.edu... 128.100.3.30
  5. Connecting to www.cs.toronto.edu|128.100.3.30|:80... connected.
  6. HTTP request sent, awaiting response... 200 OK
  7. Length: 170052171 (162M) [application/x-gzip]
  8. Saving to: “cifar-10-binary.tar.gz”
  9. 100%[===========================================================================================================================================================>] 170,052,171  859K/s   in 2m 16s
  10. 2014-12-02 01:22:28 (1.20 MB/s) - “cifar-10-binary.tar.gz” saved [170052171/170052171]
  11. Unzipping...
  12. Done.
  13. $ ls
  14. 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

[plain] view plaincopyprint?

  1. $ ./get_mnist.sh
  2. Downloading...
  3. --2014-12-02 01:24:25--  http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz
  4. Resolving yann.lecun.com... 128.122.47.89
  5. Connecting to yann.lecun.com|128.122.47.89|:80... connected.
  6. HTTP request sent, awaiting response... 200 OK
  7. Length: 9912422 (9.5M) [application/x-gzip]
  8. Saving to: “train-images-idx3-ubyte.gz”
  9. 100%[===========================================================================================================================================================>] 9,912,422   2.09M/s   in 6.7s
  10. 2014-12-02 01:24:33 (1.42 MB/s) - “train-images-idx3-ubyte.gz” saved [9912422/9912422]
  11. --2014-12-02 01:24:33--  http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz
  12. Resolving yann.lecun.com... 128.122.47.89
  13. Connecting to yann.lecun.com|128.122.47.89|:80... connected.
  14. HTTP request sent, awaiting response... 200 OK
  15. Length: 28881 (28K) [application/x-gzip]
  16. Saving to: “train-labels-idx1-ubyte.gz”
  17. 100%[===========================================================================================================================================================>] 28,881      42.0K/s   in 0.7s
  18. 2014-12-02 01:24:34 (42.0 KB/s) - “train-labels-idx1-ubyte.gz” saved [28881/28881]
  19. --2014-12-02 01:24:34--  http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz
  20. Resolving yann.lecun.com... 128.122.47.89
  21. Connecting to yann.lecun.com|128.122.47.89|:80... connected.
  22. HTTP request sent, awaiting response... 200 OK
  23. Length: 1648877 (1.6M) [application/x-gzip]
  24. Saving to: “t10k-images-idx3-ubyte.gz”
  25. 100%[===========================================================================================================================================================>] 1,648,877    552K/s   in 2.9s
  26. 2014-12-02 01:24:39 (552 KB/s) - “t10k-images-idx3-ubyte.gz” saved [1648877/1648877]
  27. --2014-12-02 01:24:39--  http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz
  28. Resolving yann.lecun.com... 128.122.47.89
  29. Connecting to yann.lecun.com|128.122.47.89|:80... connected.
  30. HTTP request sent, awaiting response... 200 OK
  31. Length: 4542 (4.4K) [application/x-gzip]
  32. Saving to: “t10k-labels-idx1-ubyte.gz”
  33. 100%[===========================================================================================================================================================>] 4,542       19.8K/s   in 0.2s
  34. 2014-12-02 01:24:40 (19.8 KB/s) - “t10k-labels-idx1-ubyte.gz” saved [4542/4542]
  35. Unzipping...
  36. Done.
  37. $ ls
  38. 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-11-13 12:40:44

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

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

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

SSD(single shot multibox detector)算法及Caffe代码详解[转]

这篇博客主要介绍SSD算法,该算法是最近一年比较优秀的object detection算法,主要特点在于采用了特征融合. 论文:SSD single shot multibox detector论文链接:https://arxiv.org/abs/1512.02325 算法概述: 本文提出的SSD算法是一种直接预测bounding box的坐标和类别的object detection算法,没有生成proposal的过程.针对不同大小的物体检测,传统的做法是将图像转换成不同的大小,然后分别处理,最

【代码导读】Github 开源项目——wysihtml5 富编辑器(Bootstrap 风格)【二】

如果您意外进入该页面,或许从下述链接开始更容易理解: [代码导读]Github 开源项目——wysihtml5 富编辑器(Bootstrap 风格)[一] 1. 整体结构 在 wysihtml5 中,所有对象受 wysihtml5 命令空间保护,从其初始化定义看,整个代码架构一目了然: https://github.com/xing/wysihtml5/blob/master/src/wysihtml5.js 1 var wysihtml5 = { 2 version: "0.4.0pre&qu

转载:深度学习caffe代码怎么读

原文地址:https://www.zhihu.com/question/27982282 Gein Chen的回答 Many thanks —————————————————————————————————————————— 1.学习程序的第一步,先让程序跑起来,看看结果,这样就会有直观的感受.Caffe的官网上Caffe | Deep Learning Framework 提供了很多的examples,你可以很容易地开始训练一些已有的经典模型,如LeNet.我建议先从 LeNet MNIST

梳理caffe代码blob(三)

贯穿整个caffe的就是数据blob: #ifndef CAFFE_BLOB_HPP_ #define CAFFE_BLOB_HPP_ #include <algorithm> #include <string> #include <vector> #include "caffe/common.hpp" #include "caffe/proto/caffe.pb.h" #include "caffe/syncedmem

梳理caffe代码net(四)

net定义网络, 整个网络中含有很多layers, net.cpp负责计算整个网络在训练中的forward, backward过程, 即计算forward/backward 时各layer的gradient. 看一下官网的英文描述: The forward and backward passes are the essential computations of a Net. Let's consider a simple logistic regression classifier. The

【Caffe代码解析】compute_image_mean

功能: 计算训练数据库的平均图像. 由于平均归一化训练图像会对结果有提升,所以Caffe里面,提供了一个可选项. 用法: compute_image_mean [FLAGS] INPUT_DB [OUTPUT_FILE]\n") 參数:INPUT_DB: 数据库 參数(可选):OUTPUT_FILE: 输出文件名称,不提供的话,不保存平均图像blob 实现方法: 数据源:求平均图像的方法是直接从数据库(LevelDB或者LMDB)里面直接读取出来的,而不是直接用图像数据库里面求出,意味着,必须先

caffe代码阅读8: Data_layers的实现细节(各个数据读取层的实现细节) 2016.3.25-28

一.Data_layers.hpp文件的作用简介 Data_layers.hpp在目前caffe的master分支中已经不能存在了,分散到各个文件中去了. 而之前是存在于cafferoot\include\caffe中.现在已经变成了各个类的名称的头文件了.这里做个提醒 首先给出这个文件中所包含的几个与数据读取有关的类. 分别为: BaseDataLayer 数据层的基类,继承自通用的类Layer Batch Batch实际上就是一个data_和label_类标 BasePrefetchingD

【Caffe代码解析】Layer网络层

Layer 功能: 是全部的网络层的基类,当中.定义了一些通用的接口,比方前馈.反馈.reshape,setup等. #ifndef CAFFE_LAYER_H_ #define CAFFE_LAYER_H_ #include <algorithm> #include <string> #include <vector> #include "caffe/blob.hpp" #include "caffe/common.hpp" #