目录:
1. 前提条件(基本运行环境)
2. Caffe 安装
3. mnist程序测试
4. cifar10 测试
5. 微软Caffe-master安装
1. 前提条件(基本运行环境)
硬件:GTX950M i7-6700HQ
软件:Windows_10_x64 VS2013 CUDA7.5
2.Caffe 安装
参考博客:http://blog.csdn.net/happynear/article/details/45372231
参考网站:http://www.th7.cn/system/win/201411/77318.shtml
Step 1. 下载 caffe 的 windows 版本
从github 上获得源码:https://www.github.com/happynear/caffe-windows
Setp 2. 下载第三方库
第三方库打包下载地址:http://pan.baidu.com/s/1i390tZB
在源码的根目录下建立个3rdparty文件夹,把文件解压进去就可以了。解压好之后,要将3rdparty/bin文件夹添加到环境变量的PATH中,这样才能让程序找到这些第三方库的dll。
Step 3. 编译源代码
编译非常简单,分为以下几步:
1、双击./src/caffe/proto/extract_proto.bat批处理文件来生成caffe.pb.h和caffe.pb.cc两个c++文件,和caffe_pb2.py这个python使用的文件。
2、打开./buildVS2013/MainBuilder.sln,打开之后切换编译模式至Release X64模式。如果打开之后显示加载失败,可能你的CUDA版本和我的不一致,这时就要用记事本打开./buildVS2013目录下各个文件夹内的.vcxproj文件,例如搜索CUDA 7.0,把这个7.0换成你自己的CUDA版本,就可以正常打开了。
3、点上边工具栏中的绿色三角编译。
3. MNIST程序测试
到 http://pan.baidu.com/s/1mgl9ndu 下载已经转换好的MNIST的leveldb数据文件,解压至./examples/mnist文件夹中,然后运行根目录下的run_mnist.bat即可开始训练,训练日志会保存在./log文件夹中,以INFO开头,txt格式的日志文件中。
4. cifar10 测试
Step 1. 下载数据集
下载cifar10数据库:http://www.cs.toronto.edu/~kriz/cifar-10-binary.tar.gz 这是binary格式的,所以我们要把它转换成leveldb格式。也可以通过搜索引擎寻找其他下载方式
Step 2. 数据集格式转换 binary -> leveldb
不能生成lmdb格式,因为windows好像不能很好地支持该格式。
在../caffe-windows/examples/cifar10文件夹中有一个 convert_cifar_data.cpp将他include到MainCaller.cpp(一个配置好各种参数的sln工程,你也可以使用caffelib caffe等其他sln工程,记得将工程名改成自己要用的工程名字,例如convert_cifar_data)中,然后编译此工程就可以了,就会生成convert_cifar_data.exe。在bin文件夹里出现convert_cifar_data.exe。然后 就可以进行格式转换。可以在bin文件夹下新建一个input文件夹。将cifar10.binary文件放在input文件夹中,这样转换时就不用写路径了。文件数据安排如下:
在当前目录下建立一个 bat 批处理文件,实现binary 到 leveldb 数据集格式转换。(要建立一个output空文件夹,否则会提示could not found files)批处理代码如下:
convert_cifar_data.exe input output leveldb
pause
执行后,在output文件夹下有cifar_train_leveldb和cifar_test_leveldb两个文件夹。里面是转化好的leveldb格式数据。
Step 3. 求数据图像的均值,获取mean.binaryproto
首先,编译../../tools/comput_image_mean.cpp,获得comput_image_mean.exe,具体方法参考上文或参考博客。
然后,在当前目录下建立一个bat批处理文件,一定要声明leveldb格式,否则默认lmdb格式运行会导致程序崩溃,代码如下:
compute_image_mean.exe --backend=leveldb output/cifar10_train_leveldb mean.binaryproto
pause
Step 4. 训练cifar网络
在…/examples/cifar10文件夹里已经有网络的配置文件,我们只需要将cifar_train_leveldb和cifar_test_leveldb两个文件夹还有mean.binaryproto文件拷到cifar10文件夹下。
修改cifar10_quick_train.prototxt中的source: “cifar-train-leveldb” mean_file: “mean.binaryproto” 和cifar10_quick_test.prototxt中的source: “cifar-test-leveldb” mean_file: “mean.binaryproto”就可以了.(cifar10_quick_train.prototxt cifar10_quick_test.prototxt 这两个文件可以单独从niuzhiheng的github上拿到)
在…/examples/cifar10目录下编写run_cifar10.bat批处理文件,代码如下:
caffe.exe train --solver=cifar10_quick_solver.prototxt
pause
目录文件结构如下:
运行.bat,效果如下:
5. 微软caffe-master安装
微软的caffe托管在github上https://github.com/Microsoft/caffe
官方说明已经给出了较为详细的安装说明,这里做些经验之谈。
(1)caffe的matlab支持
当编译好matcaffe后,需要将整个matcaffe目录添加到matlab搜索路径中去,并且要将D:\caffe_ms\Build\x64\Release这个完整的路径添加到系统path中去,还要重启一下电脑,这是才能正确使用matlab下的caffe。不重启,你会发现他提示caffe_.mexw64模块找不到,为什么呢,因为caffe的依赖库在D:\caffe_ms\Build\x64\Release中。