Caffe之初见:跑跑mnist,cifar10
操作系统:win8.1
编译环境:Caffe+CUDA+cuDNN
显卡:Nvidia GeForce GT 730(计算能力只有2.1,带不动cuDNN,但不影响使用)
环境安装参考:Caffe环境布置
一、Minst训练
开始训练mnist。
第一步:我的目录是E:\Caffe-Master\examples\mnist获取leveldb格式的数据集不能FQ的,就到:http://pan.baidu.com/s/1nvSzqkx下载吧。下载完解压到…\examples\mnist 文件夹下如下图所示。网络参数可以再lenet_train_test.prototxt中修改。
因为Caffe默认采用GPU,而我需要用CPU,故需要修改lenet_solver.prototxt中GPU和CPU切换
第二步:打开lenet_train_test.prototxt。修改参数。将第一条红线处修改为存放leveldb形式的训练数据的路径,将第二条红线处的数据格式修改为LEVELDB的形式。同样将第三条红线处修改为测试集存在的路径,第四条红线处的数据格式修改为LEVELDB。我的修改完成后数据格式如下图所示:
第三步:写入如下图所示的.bat文件,运行结果:
我的.bat文件放在E:\Caffe-Master目录下面。
运行结果如下图所示:
前面是整个mnist的训练流程,现在接着看如何训练cifar10数据集。
二、cifar10数据库
60000张32*32 彩色图片 共10类
50000张训练
10000张测试
下载cifar10数据库:http://pan.baidu.com/s/1dFC09dn
这是binary格式的,所以我们要把它转换成leveldb格式。
第一步:在E:\Caffe-Master\Build\x64\Release目录下面有有个convert_cifar_data.exe文件,若没有则运行程序进行生成。利用convert_cifar_data.exe文件在如下命令下生成ldb文件,何为LDB详情请看http://blog.csdn.net/kkk584520/article/details/41056543博客。事先建立input,output文件夹。将下载好的数据集拷贝到input文件下面。然后运行convert_cifar_data.exe input output leveldb 命令生成leveldb格式的数据集。
第二步:计算图像均值:同样在E:\Caffe-Master\Build\x64\Release目录下面查看是否有comput_image_mean.exe文件。若没有则生成新的exe文件。cmd进入Release目录后运行如下命令生成。compute_image_mean.exe --backend=leveldb output/cifar10_train_leveldb mean.binaryproto 执行后,在bin文件夹下出现一个mean.binaryproto文件,这就是所需的均值文件。
第三步:训练cifar网络:将在output生成的leveldb文件和均值文件拷贝到/examples/cifar10目录下。修改网络配置文件cifar10_quick_train_test.prototxt中的source: "cifar-train-leveldb" mean_file: "mean.binaryproto" 文件如下图所示:
后面再训练就类似于MNIST的训练。写一个train_quick.bat,内容如下:
训练结果如下: