windows10编译caffe的python接口

windows10编译caffe的python接口

安装依赖包

  • Visual Studio 2013 或 Visual Studio 2015

    选择Visual Studio 2015,caffe的windows安装只支持VS2013和VS2015

  • Anaconda3

    选择Anaconda3.4.2版本,python版本为3.5。caffe的windows安装只支持python2.7和python3.5,不支持3.6版本(VS2013只支持python2.7的, VS2015支持python2.7 和 3.5)

详情见”\\cmake\WindowsDownloadPrebuiltDependencies.cmake”中

1
2
3
4
> set(DEPENDENCIES_NAME_1800_27 libraries_v120_x64_py27_${DEPENDENCIES_VERSION})
> set(DEPENDENCIES_NAME_1900_27 libraries_v140_x64_py27_${DEPENDENCIES_VERSION})
> set(DEPENDENCIES_NAME_1900_35 libraries_v140_x64_py35_${DEPENDENCIES_VERSION})
>
  • CMake

    选择CMake 3.11.3

  • 安装cuda并添加环境变量

  • 安装cudnn

    解压cudnn-8.0-windows10-x64-v7.zip,将cuda下面的bin、include与lib三文件夹复制到CUDA对应的文件夹下:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0。

  • 安装protobuf

    protobuf源代码(各种语言实现)
    https://github.com/google/protobuf

    只需要python版和protoc(放到src文件夹下)

    到Python目录,编译

    1
    2
    python setup.py build
    python setup.py install

    将生成的google文件夹拷贝到anaconda安装路径的.\lib\site-package文件夹中

编译安装caffe

使用CMake-gui,设置source code路径为caffe的根目录,在caffe根目录下新建build文件夹为build路径

  • 修改python版本

    打开CMakeLists.txt,修改python_version为3(第50行)

    1
    set(python_version "3" CACHE STRING "Specify which Python version to use")

    在CMake-gui中选择PYTHON_EXECUTABLE为Anaconda3下的python (3.5版本)

  • 设置BLAS选项为Open

    在CMake-gui中选择BLAS为Open,原始为Atlas,Configure时会报如下错误

    Could NOT find Atlas (missing: Atlas_CLAPACK_INCLUDE_DIR Atlas_CBLAS_LIBRARY Atlas_BLAS_LIBRARY Atlas_LAPACK_LIBRARY)

点击Configure,Generate

完成后在build目录下用VS2015打开Caffe.sln,Build pycaffe项目即可

测试python接口

python接口有两种使用方式,一种是将caffe根目录下的python中的caffe文件夹拷贝到anaconda安装路径的.\lib\site-package文件夹中,可以在python源文件中直接

1
import caffe

另一种方式,在代码中添加caffe的路径到系统路径,这样可以允许使用更多版本的caffe而不至于混乱

1
2
3
4
5
6
# 添加所要使用的caffe的路径到系统路径
caffe_root = 'F:\caffe-windows\python'
import sys
sys.path.insert(0, caffe_root)
#
import caffe

没有报错则完成编译

报错情况:

dll缺失: 注意切换Anaconda的版本,确认为python3.5

No module named google : 没有安装protobuf