操作系统:win8.1
编译环境:Caffe+CUDA+cuDNN
显卡:Nvidia GeForce GT 730(计算能力只有2.1,带不动cuDNN,但不影响使用)
环境安装参考:Caffe环境布置

一、Minst训练

     开始训练mnist。
     第一步:我的目录是E:Caffe-Masterexamplesmnist获取leveldb格式的数据集不能FQ的,就到:http://pan.baidu.com/s/1nvSzqkx下载吧。下载完解压到…examplesmnist 文件夹下如下图所示。网络参数可以再lenet_train_test.prototxt中修改。

Caffe之初见:跑跑mnist,cifar10

因为Caffe默认采用GPU,而我需要用CPU,故需要修改lenet_solver.prototxt中GPU和CPU切换

Caffe之初见:跑跑mnist,cifar10

 

     第二步:打开lenet_train_test.prototxt。修改参数。将第一条红线处修改为存放leveldb形式的训练数据的路径,将第二条红线处的数据格式修改为LEVELDB的形式。同样将第三条红线处修改为测试集存在的路径,第四条红线处的数据格式修改为LEVELDB。我的修改完成后数据格式如下图所示:

Caffe之初见:跑跑mnist,cifar10

     第三步:写入如下图所示的.bat文件,运行结果:

Caffe之初见:跑跑mnist,cifar10

    我的.bat文件放在E:Caffe-Master目录下面。
    运行结果如下图所示:

Caffe之初见:跑跑mnist,cifar10


     前面是整个mnist的训练流程,现在接着看如何训练cifar10数据集。

二、cifar10数据库

      60000张32*32 彩色图片 共10类

      50000张训练

      10000张测试

      下载cifar10数据库:http://pan.baidu.com/s/1dFC09dn

      这是binary格式的,所以我们要把它转换成leveldb格式。

      第一步:在E:Caffe-MasterBuildx64Release目录下面有有个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-MasterBuildx64Release目录下面查看是否有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" 文件如下图所示:

Caffe之初见:跑跑mnist,cifar10

           后面再训练就类似于MNIST的训练。写一个train_quick.bat,内容如下:

Caffe之初见:跑跑mnist,cifar10

           训练结果如下:

Caffe之初见:跑跑mnist,cifar10