【在Windows中用 Caffe 实战 cifar-10 】
1.获得cifar-10数据集
了解cifar-10数据集
Cifar-10数据集包含60000张32*32的彩色三通道图像,共有10类图片,每一类图片有6000张,有飞机、鸟、猫、狗等。其中50000张用于训练、10000张用于测试。
下载cifar-10数据集
由于到官网的下载数据的速度比较慢,我这里给大家了准备了已经下载好的官方数据(Binary版),由于上传资源的限制,制作了两个压缩包供大家下载。
将两个压缩包下载好之后,将其中一个解压即可,另一个将自动解压。建议将解压后的数据集存放于/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
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的内容就介绍完了。