Caffe 从入门到精通05

【在Windows中用 Caffe 实战 cifar-10 】

1.获得cifar-10数据集

了解cifar-10数据集

Cifar-10数据集包含60000张32*32的彩色三通道图像,共有10类图片,每一类图片有6000张,有飞机、鸟、猫、狗等。其中50000张用于训练、10000张用于测试。

下载cifar-10数据集

由于到官网的下载数据的速度比较慢,我这里给大家了准备了已经下载好的官方数据(Binary版),由于上传资源的限制,制作了两个压缩包供大家下载。

点击进入下载页面-part01

点击进入下载页面-part02

将两个压缩包下载好之后,将其中一个解压即可,另一个将自动解压。建议将解压后的数据集存放于/data/cifar10路径下,如下图所示:



2.转换数据集格式

由于下载好的原始数据是binary二进制格式的,需要转换lmdb或leveldb格式才能被caffe识别。

所以可以使用caffe自带的cifar数据集格式转换器来实现格式转换。脚本文件(具体如何建立脚本文件请参照“Caffe从入门到精通01”-在caffe-master路径下新建脚本文件)如下所示:


.\Build\x64\Release\convert_cifar_data.exe .\data\cifar10\cifar-10-batches-bin .\exmaples\cifar10 leveldb
pause
代码解析:
.\Build\x64\Release\convert_cifar_data.exe   是要使用的cifar数据集格式转化器
.\data\cifar10\cifar-10-batches-bin  表示输入数据文件路径
.\examples\cifar10  表示输出数据文件路径
leveldb 表示要转换成的数据格式

3.获取数据集均值

图片减去均值后,再进行训练和测试,会提高速度和精度,因此,一般在各种模型中都会有这个操作。

计算所有训练数据的平均值,计算出来之后,保存一个均值文件,在以后的训练和测试中,就可以直接用这个均值文件。

caffe框架为我们提供了这个计算数据集均值的工具,并生成*.binaryproto的均值文件名。下面介绍使用该均值工具的方法:

在caffe-master文件目录下,新建一个.bat文件:代码为:

.\Build\x64\Release\compute_image_mean.exe -backend=leveldb .\examples\cifar10\cifar10_train_leveldb mean.binaryproto
pause
代码解析:

.\Build\x64\Release\compute_image_mean.exe 表示使用compute_image_mean.exe 这个工具程序

-backend=leveldb 表示数据的格式

./examples/cifar10/cifar10_train_leveldb 表示刚才生成的训练数据集的路径

mean.binaryproto  表示输出均值文件名,这里默认保存到当前路径下(即caffe-master目录下)

之后,把生成的mean.binaryproto文件复制到examples\cifar10\的目录下。

4.配置Net文件与Solver文件

会在 examples/cifar10/文件夹下生成两个文件夹,cifar10_train_leveldb和cifar10_test_leveldb, 里面的文件就是我们需要的文件。
为了节省时间,我们进行快速训练(train_quick) ,我们使用/examples/cifar10/cifar10_quick_train_test.prototxt,打开之后,修改训练数据、验证数据、以及均值文件的路径,如下所示:

name: "CIFAR10_quick"
layer {
  name: "cifar"
  type: "Data"
  top: "data"
  top: "label"
  include {
    phase: TRAIN
  }
  transform_param {
    mean_file: "examples/cifar10/mean.binaryproto"
  }
  data_param {
    source: "examples/cifar10/cifar10_train_leveldb"
    batch_size: 100
    backend: LEVELDB
  }
}
layer {
  name: "cifar"
  type: "Data"
  top: "data"
  top: "label"
  include {
    phase: TEST
  }
  transform_param {
    mean_file: "examples/cifar10/mean.binaryproto"
  }
  data_param {
    source: "examples/cifar10/cifar10_test_leveldb"
    batch_size: 100
    backend: LEVELDB
  }
}
注意 :mean_file、source、backend的参数值已经了进行修改

如果要使用CPU模式进行训练,还需要修改/examples/cifar10/cifar10_quick_solver.prototxt文件的solver_mode 为“CPU”

5.开始训练

与mnist训练类似,我们只需要在根目录caffe-master\下编写一个脚本,完成后双击:

.\Build\x64\Release\caffe.exe train --solver=examples/cifar10/cifar10_quick_solver.prototxt
pause

6.进行验证

如果想要进行验证,可以修改命令为:

.\Build\x64\Release\caffe.exe test --model=examples/cifar10/cifar10_quick_train_test.prototxt
pause

至此,windows环境下 caffe实战cifar10的内容就介绍完了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值