windows7下caffe2成功安装和编译

    Win7下安装和编译caffe2,所需主要原材料:

系统:win7

vs版本:vs2015

cuda版本:8.0

cudnn版本:cudnn6.0

caffe版本:caffe2

python版本:python2.7

下面进入干货阶段(假设vs2015,cuda和cudnn,python均已经安装成功):

(1)下载python依赖

   这一步建议事先要在已经安装pip的前提下进行,具体pip如何安装请自行百度:

pip install future ^
            hypothesis ^
            numpy ^
            protobuf ^
            six

pip install flask ^
            glog ^
            graphviz ^
            jupyter ^
            matplotlib ^
            pydot python-nvd3 ^
            pyyaml ^
            requests ^
            scikit-image ^
            scipy ^
            setuptools ^
            tornado

(2)编译源码

这一步建议一定要通过git的方式进行下载,会下载很多依赖库,如何直接在github下载的话会有很多缺少的东西:

git clone --recursive https://github.com/caffe2/caffe2.git

(3)运行build_host_protoc.bat

用记事本打开CAFFE2_ROOT/scripts/build_host_protoc.bat在文件首的 @echo off之下添加一行 set CMAKE_GENERATOR="Visual Studio 14 2015 Win64"之后就可以执行 build_host_protoc.bat,成功之后会出现提示信息: "protobuf built successfully"在CAFFE2_ROOT目录下会出现 build_host_protoc 文件夹。如果已经将vs2015进行安装并添加到环境变量的话,其实该修改不用添加,因为它可以找的到vs14.

(4)修改 build_windows.bat 并执行

用记事本打开CAFFE2_ROOT/scripts/build_windows.bat在文件首的 @echo off之下添加 set CMAKE_GENERATOR="Visual Studio 14 2015 Win64" set USE_CUDA=ON (如果只是使用CPU,不使用GPU,那么这行就不要添加)将 -DBUILD_PYTHON=OFF^ 改为 -DBUILD_PYTHON=ON^之后就可以执行 build_windows.bat,成功之后会出现提示信息: "Caffe2 built successfully"在CAFFE2_ROOT目录下会出现 build文件夹。

注意,在此步属于整个编译成功的关键,此步会创建build目录,并生成相应.sln文件,但是会出现编译错误:

a.流程:先将caffe2单独编译成功,再整个工程选择build来编译其他工程。

b.出现无法打开文件Eigen/core。 打开build文件夹下生成的caffe2.sln工程,在相应工程属性中include进D:\work\Caffe2\caffe2\third_party\eigen目录即找到。

c.出现pow函数的错误。将softmax_focal_loss_op.cu中第81行的pow函数变为pow((float)(1.0 - Pdata[idx]), (float)gamma)即可

d.出现cudnn或cuda错误。将cuda和cudnn的链接库相应的include加载到对应的工程中

e.出现cannot open file 'python27.lib'。将python27.lib对应的库libs路径加载到对应工程中,比如:D:\soft\python\Anoconda2-4.3.1\libs (如果有安装Anoconda,就加载对应的其中libs路径

f.在编译工程caffe2_detectron_ops_gpu时,把前面生成的caffe2.lib链接到工程中,即在附加依赖项中添加..\..\lib\Release\caffe2.lib,不然会出现找不到很多关于caffe2的链接错误。

  编译成功后,会生成caffe2.lib、caffe2_gpu.lib、caffe2_detectron_ops_gpu.lib等库,本人生成了39个库。

(5)配置python路径

将 CAFFE2_ROOT\build\caffe2\python\Release 下的 caffe2_pybind11_state.pyd 和 caffe2_pybind11_state_gpu.pyd 拷贝到 D:\soft\python\Anoconda2-4.3.1\DLLs路径下。

配置环境变量: PYTHONPATH = CAFFE2_ROOT\build 。如果下载路径为: D:\DeepLearning\caffe2, 则将该路径记为 CAFFE2_ROOT, 只是为了下文描述方便。build为步骤(4)中生成的路径。

(6)配验证测试caffe2

在任意目录新建 test.py,代码如下
import numpy as np
import os
import shutil
from caffe2.python import core, cnn, net_drawer, workspace, visualize
core.GlobalInit(['caffe2', '--caffe2_log_level=0'])
caffe2_root = "~/caffe2"
print("Necessities imported!")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

成功则出现如下信息:

Caffe2 build configuration:
  BLAS                      : Eigen
  BUILD_TYPE                : Release
  CXX_FLAGS                 : /DWIN32 /D_WINDOWS /W3 /GR /EHsc /MP /bigobj
  FORCE_FALLBACK_CUDA_MPI   :
  GIT_VERSION               :
  HAS_MKL_DNN               :
  HAS_MKL_SGEMM_PACK        :
  PERF_WITH_AVX             :
  PERF_WITH_AVX2            :
  UNIQUE_LONG_TYPEMETA      : 1
  USE_ACCELERATE            :
  USE_ATEN                  : OFF
  USE_CUDA                  : ON
  USE_EIGEN_FOR_BLAS        : 1
  USE_GFLAGS                : OFF
  USE_GLOG                  : OFF
  USE_GLOO                  :
  USE_LITE_PROTO            :
  USE_MKL                   :
  USE_MPI                   : OFF
  USE_NCCL                  : OFF
  USE_NNPACK                : OFF
  USE_NVTX                  :
  USE_OPENMP                : OFF
Necessities imported!



 
 




                                              

猜你喜欢

转载自blog.csdn.net/lien0906/article/details/79268775