Windows+Python+Caffe

Windows+Python+Caffe

一、Python安装

Anaconda5.2安装(包含Python使用的大多数库)

下载地址:https://www.anaconda.com/download/

配置caffe可根据下图选择平台。本文建议visual Studio2013+Python2.7(Anaconda2 5.2)

1、双击安装包,进行安装。点击Next

2、点击I Agree。

3、选择安装使用用户,然后点击Next

4、选择安装路径。点击Next。

5、勾选第一个,自动添加ANACONDA环境变量,安装成功后可以直接在命令行运行Python。若未勾选,则可在系统环境变量中添加变量path,变量值为ANACONDA安装路径。

勾选第二个,在安装成功后会提醒是否安装Visual Studio。

6、安装成功后(确保环境变量配置成功),打开命令行,输入Python,即可安装成功。

二、Visual Studio2013安装

若未在安装ANACONDA时接着安装Visual Studio则可打开MSDN网站找到需要安装的Visual Studio版本链接,打开迅雷进行下载。

对应版本链接:

(1)文件名:cn_visual_studio_premium_2013_with_update_5_x86_dvd_6815741.iso

链接地址:ed2k://|file|cn_visual_studio_premium_2013_with_update_5_x86_dvd_6815741.iso|5549494272|561EF218E48FECBBC04781A86860D00C|/

(2)文件名:cn_visual_studio_professional_2013_with_update_5_x86_dvd_6815749.iso

链接地址:ed2k://|file|cn_visual_studio_professional_2013_with_update_5_x86_dvd_6815749.iso|5517246464|DEA9BB85B73F6A1F23E638DFE06CEF07|/

(3)文件名:cn_visual_studio_ultimate_2013_with_update_5_x86_dvd_6816649.iso

链接地址:ed2k://|file|cn_visual_studio_ultimate_2013_with_update_5_x86_dvd_6816649.iso|5567336448|641555AD6472A98923B29CC5E371461E|/

将下载好的镜像文件解压,得到文件夹,打开文件夹,文件目录如图:

双击vs_premium进行安装。

三、Caffe安装

Caffe下载链接(caffe-master):  https://github.com/Microsoft/caffe

              百度云下载:http://pan.baidu.com/s/1hs8ngpA 密码:ith0

1、软件下载完成之后,开始一步一步来搭建环境。

(1)首先解压caffe-master.zip压缩包,打开caffe-master文件夹。在windows文件夹下复制CommonSettings.props.example文件,重命名为CommonSettings.props文件。

(2)在windows文件夹下找到Caffe.sln,并用VS2013打开->项目/解决方案。在CommonSettings.props文件中修改相应内容:(下面Python路径一定要改为anaconda2的路径,图片中是anaconda3路径)

由于PC只有CPU没有GPU,修改第7、8行;想要支持Python接口,修改第13行,并添加Python路径,修改第48行。

https://images2015.cnblogs.com/blog/888816/201701/888816-20170119184717890-65218330.png

打开Caffe.sln出现了libcaffe和test_all加载失败。出现这个情况,原因可能和更改配置有关系,就将项目/解决方案关闭,重新打开就好了。

(3)配置文件修改好后,可以编译Caffe了。

    点击生成解决方案之后,因未加载第三方类库NugetPackages,Visual Studio会进行下载,可以事先将下载好的NugetPackages库放到与caffe-master文件夹同级目录下。

安装成功后,有两种Debug和Release活动配置,都可以编译。在编译过程中,建议首选编译Release。

    需要留意的地方有两个,在中间下拉菜单旋转"Release",看看是否有16个项目。然后找到libcaffe这一个项目,右键→“属性”,在"configuration Properties"目录下找到"C/C++",将“Treat Warnings Aa Errors”调成“NO(/WX-)”。因为在编译libcaffe的过程中可能会出现一下报警,这些报警的级别太高,会被误认为错误。

留意上面的"Additional Include Directories",把python安装路径下的"include"文件夹的路径填上去,这里要根据各人的地址来填写。

    接着配置caffe项目的属性。在"C/C++"选项中找到"Additional Include Directories",把python的include文件的路径添加进去,例如:E:/python/include。

然后,同样是caffe项目下的属性,选择Linker(连接器),选择"Additional Library Directories"(附加库目录),把python的libs的路径添加进去。例如:"E:/python/libs"。

    然后我们找到pycaffe这个项目,像上述操作一样找到"C/C++"选项中的"Additional Include Directories",这次需要添加的不止python的include路径,还有numpy的include路径,格式分别是:“E:/python/include”和"E:/python/Lib/site-packages/numpy/core/include"。记得用;隔开。

继续是pycaffe项目,像上述操作一样找到Linker(连接器),选择"Additional Library Directories"(附加库目录),把python的libs的路径和numpy的lib路径添加进去。格式分别是:“E:/python/libs”和"E:/python/Lib/site-packages/numpy/core/lib"。记得用;隔开。

接下来生成这16个项目,右键Solution'Caffe'选择"Build"(生成)。

    时间可能花10到20分钟,如果最后显示生成16个项目成功的话就真的成功编译了。不过很多人可能会出现找不到"python27.lib"这个错误,因为我们上述的操作没有逐个逐个地把python的libs的路径添加到"Additional Library Directories"(附加库目录),编译的时候哪个项目报出错误,就在哪个项目的"Additional Library Directories"(附加库目录)添加libs的路径。

此外,还有可能遇到找不到python27_d.lib这个错误,最简单的解决方法就是把python27.lib拷贝一份,然后更名为python27_d.lib。

假设我们都已经编译完成了,在./caffe-master/Build/x64/Release的目录下,看看能不能找到caffe.exe文件,找到的话编译就成功了。

双击工程中caffe.cpp文件,Ctrl+F5直接运行,有如下结果即caffe安装成功。

把./caffe-master/Build/x64/Release/pycaffe目录下的caffe文件夹拷贝到python的Lib目录下的site-packages文件夹。

运行cmd,在Python环境下import caffe提示报错No module named google.protobuf.internal,退出Python环境,运行conda install protobuf命令,完成安装。

    完成安装后,在Python环境下import caffe运行成功。

mnist测试:

下面通过一个一个最简单的网络结构lenet来对刚才安装的caffe进行测试。

(1)去官网http://yann.lecun.com/exdb/mnist/下载mnist数据集。下载后解压到E:\caffe\data\mnist。

(2)在caffe根目录下,新建一个create_mnist.bat,里面写入如下的脚本。

    .\Build\x64\Release\convert_mnist_data.exe .\data\mnist\mnist_train_lmdb\train-images.idx3-ubyte .\data\mnist\mnist_train_lmdb\train-labels.idx1-ubyte .\examples\mnist\mnist_train_lmdb

    echo.

    .\Build\x64\Release\convert_mnist_data.exe .\data\mnist\mnist_test_lmdb\t10k-images.idx3-ubyte   .\data\mnist\mnist_test_lmdb\t10k-labels.idx1-ubyte .\examples\mnist\mnist_test_lmdb

    pause

 

然后双击该脚本运行,即可在E:\caffe\examples\mnist下面生成相应的lmdb数据文件。

(3)修改E:\caffe\examples\mnist\lenet_solver.prototxt,将最后一行改为solver_mode:CPU,

修改E:\caffe\examples\mnist\lenet_train_test.prototxt,如下所示,左面为原始的,右面为修改后的。

(4)在caffe根目录下,新建train_mnist.bat,然后输入如下的脚本,

    .\Build\x64\Release\caffe.exe train --solver=.\examples\mnist\lenet_solver.prototxt

    pause

然后双击运行,就会开始训练,训练完毕后会得到相应的准确率和损失率。