深度学习系列——windows平台下跑微软的caffe实战之运行mnist,cifar10
为了防止自己遗忘写此博客,请各位大牛多多指正。
Minst训练
我的编译环境是在windows平台下面,用微软的caffe搭建深度学习的编译环境。编译环境请参考博客:
http://blog.youkuaiyun.com/K3832127/article/details/50819464。我在安装过程中将winpython的bin添加到环境变量里面。运行编译成功。
然后开始训练mnist。
第一步:我的目录是D:\caffe-master (2)\caffe-master\examples\mnist获取leveldb格式的数据集不能翻墙的,就到:http://download.youkuaiyun.com/detail/u012878523/8140305 下载吧。下载完 解压到…\examples\mnist 文件夹下如下图所示。网络参数可以再lenet_train.prototxt中修改。GPU和CPU的切换在lenet_solver.prototxt.
第二步:打开lenet_train_test.prototxt。修改参数。将14行修改为存放leveldb形式的训练数据的路径,将16行的数据格式修改为LEVELDB的形式。同样将31行修改为测试集存在的路径,32行的数据格式修改为LEVELDB。我的修改完成后数据格式如下图所示:
第三步:写入如下图所示的.bat文件,运行结果:
我的.bat文件放在D:\caffe-master (2)\caffe-master目录下面。
运行结果如下图所示:
前面是整个mnist的训练流程,现在接着看如何训练cifar10数据集。
cifar10数据库
60000张32*32 彩色图片 共10类
50000张训练
10000张测试
下载cifar10数据库:http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz
这是binary格式的,所以我们要把它转换成leveldb格式。
第一步:在D:\caffe-master (2)\caffe-master\Build\x64\Release目录下面有有个convert_cifar_data.exe文件,若没有则运行程序进行生成。利用convert_cifar_data.exe文件在如下命令下生成ldb文件,何为LDB详情请看http://blog.youkuaiyun.com/kkk584520/article/details/41056543博客。事先建立input,output文件夹。将下载好的数据集拷贝到input文件下面。然后运行convert_cifar_data.exe input output leveldb 命令生成leveldb格式的数据集。
第二步。计算图像均值。同样在D:\caffe-master (2)\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,内容如下:
.\Build\x64\Release\caffe.exe train --solver=examples/cifar10/cifar10_quick_solver.prototxt pause
![]()
参考文献:
http://blog.youkuaiyun.com/u012878523/article/details/41308333
http://blog.youkuaiyun.com/kkk584520/article/details/41056543
http://www.07net01.com/linux/2015/12/1046199.html