目标:安装只运行在CPU上python可以调用的caffe。
环境:64位的win10系统,没有NVIDIA的独显,VS2013.
1、安装anaconda2
官网下载地址:https://www.anaconda.com/download/
2017年11月3号下载的安装包的百度云链接:https://pan.baidu.com/s/1cfM4qU
一路下一步直到安装完毕,然后再检查一下系统环境变量Path里面有没有以下三项:
C:\Users\yyk\Anaconda2
C:\Users\yyk\Anaconda2\Scripts
C:\Users\yyk\Anaconda2\Library\bin
其中C:\Users\yyk是anaconda2的安装路径,如果安装路径不同,三个值也相应不同。如果没有上面的三个值就添加到Path中。
安装完anaconda2之后可以一些anaconda2没有自带的库。
比如用pip install image来安装image库
用conda install -c http://conda.binstar.org/menpo opencv安装opencv
2.1、下载caffe
百度云链接:https://pan.baidu.com/share/link?shareid=2130451610&uk=3340829641
下载下来之后解压到某个英文路径下。
2.2、修改配置文件
把caffe-windows\windows文件夹下的CommonSettings.props.example文件改名为CommonSettings.props,并设置其中的四行:
<1>把第7行设置为true。
<2>把第8行设置为false。
<3>把第13行设置为true。
<4>把第16行设置为true。
<5>把第48行的C:\Miniconda2\替换为anaconda2的安装路径,即C:\Users\yyk\Anaconda2\
<6>把第53行的matlab的安装路径替换为电脑安装matlab的路径,即C:\Program Files\MATLAB\R2015b
其中<1><2>是为了设置caffe只在CPU上运行<3>是为了让支持python<4>是为了支持matlab
2.3、编译caffe
用VS2013打开caffe-windows\windows文件夹下的Caffe.sln,因为其他的工程要依赖libcaffe,所以先生成这个工程,如果生成报错:没有生成object文件,那就双击错误,点击确定之后重新生成,就应该成功了,最后生成整个解决方案。
2.4、生成caffe
右键点击解决方案=>属性=>通用属性=>启动项目=>当前选定内容,然后保存。
之后把caffe工程设置为启动项目,Ctrl+F5运行成功之后会出现如下界面:
2.5、用mnist数据集做测试
2.5.1、下载数据集
下载数据集链接:https://pan.baidu.com/s/1pL82j5D
把文件解压到caffe-windows\data\mnist文件夹下,同时在该文件夹中新建两个文件夹,一个命名为mnist_test_lmdb,另一个命名为mnist_train_lmdb。把解压得到的四个文件中文件名带有train的两个文件放到mnist_train_lmdb文件夹中,另两个文件放到mnist_test_lmdb文件夹中。
2.5.2、生成数据
在caffe-windows文件夹中新建一个名字为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
然后双击该bat文件就会在caffe-windows\examples\mnist文件夹下生成两个文件夹:
里面有生成的文件。
如果出现错误:convert_mnist_data.cpp:103] Check failed: mdb_env_open(mdb_env, db_path, 0, 0664) == 0 (112 vs. 0) mdb_env_open failed
那就去convert_mnist_data.cpp文件的103行左右,把
CHECK_EQ(mdb_env_set_mapsize(mdb_env, 1099511627776), MDB_SUCCESS) //1TB
一行中的1099511627776改为107374182
然后再双击caffe-windows文件夹下的create_mnist文件,如果出现如下错误:
convert_mnist_data.cpp:98] Check failed: _mkdir(db_path) == 0 (-1 vs. 0) mkdir .\examples\mnist\mnist_test_lmdbfailed
那就去caffe-windows\examples\mnist文件夹中把mnist_test_lmdb和mnist_train_lmdb两个文件夹连同它们包含的文件一起删除掉。这样再双击create_mnist文件应该就可以生成成功了。
2.5.3、训练
把caffe-windows\examples\mnist文件夹中的lenet_solver.prototxt文件最后一行的GPU修改为CPU。
把同一个文件夹下的lenet_train_test.prototxt文件中的第14行修改为:
source: "./examples/mnist/mnist_train_lmdb"
31行修改为:
source: "./examples/mnist/mnist_test_lmdb"
然后在caffe-windows文件夹中新建一个名为train_mnist的bat文件,并输入以下内容:
.\Build\x64\Release\caffe.exe train --solver=.\examples\mnist\lenet_solver.prototxt
pause
然后双击该bat文件运行后会有精度和loss。
3、配置python接口
先用pip install protobuf安装protobuf库
然后把caffe-windows\windows\pycaffe文件夹中的caffe文件夹拷贝到Anaconda2\Lib\site-packages文件夹中,这样再python脚本中倒入caffe就OK了。
参考:
http://blog.csdn.net/fairylrt/article/details/43560525
http://blog.csdn.net/qq_14845119/article/details/52415090
http://www.cnblogs.com/billyzh/p/6307716.html