Caffe在Win10上的CPU配置以及运行第一个手写体数字识别的caffemodel

Caffe在Win10上的CPU配置:

操作系统:Windows10

编译环境(必选):Visual Studio 2013 Ultimate版(Visual Studio 2013 Ultimate版免费获取地址:http://download.microsoft.com/download/9/3/E/93EA27FF-DB02-4822-8771-DCA0238957E9/vs2013.5_ult_chs.iso?type=ISO)

由于只编译CPU模式Caffe,所以先不安装CUDA Toolkit 7.5(英伟达推出的GPU加速运算平台)和cuDNN(深度神经网络的GPU加速库)

以下分为五步:

(1)安装Visual Studio 2013 Ultimate版(如安装到D:\VS2013[自己命名的文件夹]);

(2)将Microsoft为Windows用户提供的Caffe 代码(https://github.com/microsoft/caffe)下载到磁盘(如D:\caffe-master[自己命名的文件夹]);

(3)进入D:\caffe-master\caffe-master\windows目录(第二个caffe-master是解压后得到的),将文件CommonSettings.props.example重命名为CommonSettings.props,修改其内容如下:

其他的内容都不用改

(4)修改完成后,保存该文件。双击同一目录下的caffe.sln文件,打开Windows Caffe工程;

(5)单击菜单“生成”,“重新生成解决方案”,开始漫长的编译过程。在编译阶段,Visual Studio 2013会通过NuGet工具自动获取编译的Caffe依赖包,放置在D:\caffe-master\NugetPackages下面。打开该目录,查看下载好的依赖包,总共有16个文件夹;

Caffe在Win10上的CPU配置以及运行第一个手写体数字识别的caffemodel_第1张图片

编译成功后,生成的可执行文件和库位于D:\caffe-master\caffe-master\Build\x64\Release下面:

Caffe在Win10上的CPU配置以及运行第一个手写体数字识别的caffemodel_第2张图片

这里遇到了第一个问题,下载好依赖包后并没有编译成功,在D:\caffe-master\caffe-master\Build\x64并没有出现Release文件夹

问题1:编译后在D:\caffe-master\caffe-master\Build\x64并没有出现Release文件夹

解决方案:用VS2013打开D:\caffe-master\caffe-master\src\caffe\util中的math_functions.cpp文件,单击菜单“项目”,“libcaffe属性",“配置属性”,“C/C++","常规","将警告视为错误"改为“否”后保存文件。

运行第一个手写体数字识别的caffemodel:

(1)通过D:\caffe-master\caffe-master\data\mnist中的get_mnist.sh脚本下载mnist数据集,但.sh脚本文件只能在Linux下运行,在Windows上运行需要下载Git bash运行,Git bash可以让你直接在windows下运行shell脚本(https://git-scm.com/download/win);

(2)通过Git bash运行脚本文件需要下载wget,wget可以让你从互联网上获取资源(http://www.interlog.com/~tcharron/wgetwin-1_5_3_1-binary.zip),为了外部调用wget,需要将wget所在目录加入环境变量(电脑,属性,高级系统设置,环境变量,双击Path);

(3)打开Git bash,cd到caffe根目录(可以通过在环境变量中新建一个变量名为CAFFE_ROOT根目录名,变量值为D:\caffe-master\caffe-naster),再输入./data/mnist/get_mnist.sh即可下载解压;

Caffe在Win10上的CPU配置以及运行第一个手写体数字识别的caffemodel_第3张图片

这里遇到了第二个问题:wget unrecognized option,在Windows利用wget和gitbash通过get_mnist.sh脚本下载不了mnist数据集

解决方案:打开get_mnist.sh脚本,修改其内容,将--no-check-certification语句删掉后保存文件。

Caffe在Win10上的CPU配置以及运行第一个手写体数字识别的caffemodel_第4张图片

下载好的数据集放置于D:\caffe-master\caffe-master\data\mnist下面,出现4个二进制文件:

Caffe在Win10上的CPU配置以及运行第一个手写体数字识别的caffemodel_第5张图片

(4)在caffe框架中需要将下载到的二进制文件的原始数据集转换为LEVELDB或LMDB才能被Caffe识别,在这个应用中转换为lmdb格式,打开Git bash,cd到caffe根目录,输入./examples/mnist/create_mnist.sh即可转换;

Caffe在Win10上的CPU配置以及运行第一个手写体数字识别的caffemodel_第6张图片

这里遇到了第三个问题:将二进制文件转换成lmdb时出现no such file

解决方案:打开D:\caffe-master\caffe-master\examples\mnist中的create_mnist.sh脚本文件,修改其内容(1、EXAMPLE,将其定位到create_mnist.sh脚本文件所在的地方;2、DATA,将其定位到从数据库下载的二进制格式数据中;3、BUILD,将其定位到有convert_mnist_data.exe所在的地方):

Caffe在Win10上的CPU配置以及运行第一个手写体数字识别的caffemodel_第7张图片

转换好的数据放置于D:\caffe-master\caffe-master\examples\mnist,出现两个新的文件夹mnist_train_lmdb和mnist_test_lmdb,每个文件夹里都有两个文件:data.mdb和lock.mdb:

Caffe在Win10上的CPU配置以及运行第一个手写体数字识别的caffemodel_第8张图片

(5)开始训练神经网络,在Caffe根目录下新建一个文本文件txt,用VS打开txt,在文本中输入以下命令,并将文件名重命名为run_mnist.bat,打开D:\caffe-master\caffe-master\examples\mnist中的lenet_solver.prototxt(训练超参数文件),在最后一行选择cpu,鼠标双击运行run_mnist.bat开始训练,训练日志如下;

Caffe在Win10上的CPU配置以及运行第一个手写体数字识别的caffemodel_第9张图片

训练完后在D:\caffe-master\caffe-master\examples\mnist中会出现4个文件,分别是迭代5000次和10000次的模型(因为在训练超参数文件中设置snapshot:5000,意思是每5000次迭代输出中间结果,即保存一次.caffemodel,.solverstate:

Caffe在Win10上的CPU配置以及运行第一个手写体数字识别的caffemodel_第10张图片

(6)开始预测,在Caffe根目录下新建一个文本文件txt,用VS打开txt,在文本中输入以下命令,并将文件名重命名为test_mnist.bat,鼠标双击运行test_mnist.bat开始测试,测试日志如下

.\Build\x64\Release\caffe.exe test -model=examples\mnist\lenet_train_test.prototxt -weights=examples\mnist\lenet_iter_10000.caffemodel -iterations=100
pause

注意这里第一行一定要在一行内写,命令行解释:

1、.\Build\x64\Release\caffe.exe test  表示只做预测(前向传播计算),不进行参数更新(后向传播计算);

2、model=examples\mnist\lenet_train_test.prototxt   表示指定模型描述文本文件;

3、-weights=examples\mnist\lenet_iter_10000.caffemodel    表示指定模型预先训练好的权值文件;

4、-iterations=100    表示指定测试迭代次数

Caffe在Win10上的CPU配置以及运行第一个手写体数字识别的caffemodel_第11张图片

利用自制的数字测试网络的性能:

(1)用Windows的画图工具自己手写一张,打开画图工具,“重新调整大小”,写好后保存,可以看到保存的是.png格式的RGB图像,而网络中使用的是28*28的灰度图像,所以需要借助matlab将RGB图像转化为灰度图像,代码如下(这里我自制了8张手写图像,在matlab中通过循环将8张图像都转换为灰度图像),最后将转换好的图像放置于D:\caffe-master\caffe-master\examples\mnist\selftest:

Caffe在Win10上的CPU配置以及运行第一个手写体数字识别的caffemodel_第12张图片

Caffe在Win10上的CPU配置以及运行第一个手写体数字识别的caffemodel_第13张图片

Caffe在Win10上的CPU配置以及运行第一个手写体数字识别的caffemodel_第14张图片

(2)在D:\caffe-master\caffe-master\examples\mnist中新建标签文件synset_words.txt:

Caffe在Win10上的CPU配置以及运行第一个手写体数字识别的caffemodel_第15张图片

(3)在D:\caffe-master\caffe-master新建mnist_class.bat(除了pause外其他都写在同一行,pause的作用:使命令行界面停住),双击运行,结果如下图(这里只测试了一张自制的图像):

D:\caffe-master\caffe-master\Build\x64\Release\classification.exe D:\caffe-master\caffe-master\examples\mnist\lenet.prototxt D:\caffe-master\caffe-master\examples\mnist\lenet_iter_10000.caffemodel D:\caffe-master\caffe-master\examples\mnist\mean.binaryproto D:\caffe-master\caffe-master\examples\mnist\synset_words.txt D:\caffe-master\caffe-master\examples\mnist\selftest\26.bmp
pause

Caffe在Win10上的CPU配置以及运行第一个手写体数字识别的caffemodel_第16张图片

 

你可能感兴趣的:(Caffe在Win10上的CPU配置以及运行第一个手写体数字识别的caffemodel)