一.准备工作
1.window10(其他的windows版本应该也可以,本人只尝试了win10和win7)
2.Visual Studio2013(2015应该也可以,但是2017的问题比较多,建议使用VS2013)
3.Github安装
二.下载Caffe源码
从该网站克隆windows版本的Caffe源码
https://github.com/Microsoft/Caffe
三.源码处理
1.点开Caffe->windows,将example文件修改名字复制出一个新的文件。
2.修改CommonSettings.props文件(以CPU为例)
(1)CpuOnlyBuild改为true
(2)UseCuDNN修改为false
3.点击Caffe.sln文件,使用VS2013打开。
4.在项目的“解决方案‘Caffe’(16个项目)”右键生成解决方案,在这个过程中会安装NuGet,速度会比较慢。如果出现错误:‘alt_sstream_impl.hpp’的编码错误(一开始的错误会抛在libcaffe上,在libcaffe上点击生成方案就会出现这个编码错误),这时候在本地文件中找到该文件,用VS2013打开,然后保存即可。
4.mnist数据集测试
1.数据集介绍
- train-images-idx3-ubyte.gz
- train-labels-idx1-ubyte.gz
- t10k-images-idx3-ubyte.gz
- t10k-labels-idx1-ubyte.gz
2.将下载好的文件解压后放在examples->mnist->mnist_data文件夹下。
3.在根目录下面新建三个文件(文件名是任意的)
文件一: ”convert_mnist_data_train.bat”
Build\x64\Debug\convert_mnist_data.exe --backend=lmdb examples\mnist\mnist_data\train-images.idx3-ubyte examples\mnist\mnist_data\train-labels.idx1-ubyte examples\mnist\mnist_data\mnist_train_lmdb
pause
文件二: “convert_mnist_data_test.bat”
Build\x64\Debug\convert_mnist_data.exe --backend=lmdb examples\mnist\mnist_data\t10k-images.idx3-ubyte examples\mnist\mnist_data\t10k-labels.idx1-ubyte examples\mnist\mnist_data\mnist_test_lmdb
Pause
将生成的两个文件夹放在example->minist下面
文件三: “run.bat”
Build\x64\Debug\caffe.exe train --solver=examples/mnist/lenet_solver.prototxt
pause
运行文件run.bat,如果运行成功,则配置完成。
参考链接:https://www.cnblogs.com/pkjplayer/p/7302075.html
5.编译windows下面的python接口–pycaffe
(1)修改配置文件CommonSettings.props
<PythonSupport>true</PythonSupport>
<PythonDir>C:\Python2\</PythonDir>
(2)去编译Release版本的pycaffe,如果是Debug的方式,可能出现python27_d.lib找不到。
解决方案:
修改Anaconda或者是Python文件夹的include文件夹的pyconfig.h文件:
#ifdef _DEBUG
# define Py_DEBUG
#endif
为:
#ifdef _DEBUG
//# define Py_DEBUG
#endif
修改:
# ifdef _DEBUG
# pragma comment(lib,"python27_d.lib")
# else
# pragma comment(lib,"python27.lib")
# endif /* _DEBUG */
为:
# ifdef _DEBUG
# pragma comment(lib,"python27.lib")
# else
# pragma comment(lib,"python27.lib")
# endif /* _DEBUG */
此时在VS2013中的pycaffe上右键生成,成功编译后将caffe\Build\x64\Debug\pycaffe\caffe这个文件夹复制到Anaconda2的Lib文件夹的site-packages下面。
(3)测试接口,在python2的环境下
import caffe
如果出现错误:
ImportError:No module named protobuf
这个时候可以
- conda install protobuf
- pip2 install protobuf
- 下载protobuf源码,在protobuf的python子文件夹下面,python setup.py build, python setup.py test, python setup.py installl
然后再import caffe,一般来说就可以了。pycaffe配置完成。