caffe的微软github版安装教程

注意,caffe和caffe2是不同的,我们当前安装的是caffe

可查看

https://www.jianshu.com/p/9935a1efb27c

二者的安装方法是不同的

 

然后安装anaconda3,下载地址

https://www.anaconda.com/distribution/#download-section

anaconda3的安装过程中,会让你勾选环境变量和VS的一些支持,你可以都不勾选,以维持系统的整洁。

 

anaconda3配置源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --set show_channel_urls yes

conda info

 

如果要换回默认源的话,可用该命令

conda config --remove-key channels

 

Caffe的windows安装会有两种途径

一种是windows的github

https://github.com/Microsoft/caffe

不过这个github四年前已经停止更新了,并只支持python2.7,而且python2在2020年之后已停止维护,安装可查看

https://blog.csdn.net/xingchenbingbuyu/article/details/72765612

有配套的依赖库可以下载,不用等打开.sln文件之后再下载,太慢了,依赖库默认安装到caffe-windows-ms\windows\thirdparty目录下

 

另一个是caffe的官方github

https://github.com/BVLC/caffe/tree/windows

这个版本的优点是,它有cmake,其实你可以用build_win_cmd,不过不方便,就不推荐了

安装方法可查看

https://blog.csdn.net/nichengwuxiao/article/details/79137640

https://blog.csdn.net/u011380951/article/details/104609824

注意,这个的依赖库目录会默认安装到C:\Users\你的用户名\.caffe\dependencies目录下,这个就要注意了

 

原本caffe 的官方github应该是没有windows版本,所以才有微软windows的github版推出,而后来caffe更新了windows版本,那么windows的github自然就不更新了。

 

注意,编译之前先查清楚caffe支持哪个版本的编译器,当前的caffe支持VS2015,所以我也用的VS2015

 

本文主要介绍的Windowsgithub版本安装,虽然不推荐用这个版本安装,但是看一下防止以后掉到类似的坑也是有用的,如果要使用官网github版,请看下一篇文章

 

由于anaconda3安装的仅仅是python3.x,而Windows的github版本的caffe其实比较老,而且也不更新了,因此它只对python2.7有较好的支持(估计是怕麻烦吧),尽管python2在2020年已经不会再维护了。

 

安装python2.7命令:

conda create -n python27 python=2.7

该命令会把python2.7安装到anaconda3/envs目录中,所以不用担心安装到C盘

如果要删除该环境,可以运行以下命令

conda remove -n python27 --all

conda info –e

 

然后安装numpy,这个比较坑,新创的环境不会帮你安装第三方库的

conda activate python27

conda install numpy

 

 

然后添加Path环境变量,而且最好放到最前,以免cmake识别了别的python

D:\anaconda3\envs\python27

D:\anaconda3\envs\python27\Scripts

D:\anaconda3\envs\python27\Library\bin

为了避免以后的坑,这三个环境变量是必要的,如果以后用回Python3.x,那么就把中间的env\python27删掉。为什么说这三个环境变量是必要的呢?你可以再安装anaconda3的时候勾选一下添加环境变量,它会自动帮你添加Path环境变量,其中就包含这三个目录。

 

然后查看你显卡的cuda计算容量(只用CPU安装的不用看)

https://developer.nvidia.com/cuda-gpus#compute

我的显卡为GeForce GTX 1050 Ti,计算能力为

GeForce GTX 1050   6.1

 

安装过程就不详细解释了,可查看上面贴的链接

其中在CommonSettings.props中,

由于我想用GPU计算,因此CpuOnlyBuild 和 UseCuDNN我都保持默认

    <!--NOTE: CpuOnlyBuild and UseCuDNN flags can't be set at the same time.-->

    <CpuOnlyBuild>false</CpuOnlyBuild>

    <UseCuDNN>true</UseCuDNN>

    <UseNCCL>true</UseNCCL>

    <UseMKL>false</UseMKL>

<CudaVersion>8.0</CudaVersion>

 

由于我不用matlab,因此matlab的部分改为

    <!-- NOTE: If Matlab support is enabled, MatlabDir (below) needs to be

         set to the root of your Matlab installation. -->

    <MatlabSupport>false</MatlabSupport>

    <MXNetSupport>false</MXNetSupport>

 

然后是计算能力,由于我的显卡计算能力能去到6.1,因此就改为

    <!-- Set CUDA architecture suitable for your GPU.

         Setting proper architecture is important to mimize your run and compile time. -->

    <CudaArchitecture>compute_52,sm_52;compute_61,sm_61;</CudaArchitecture>

并配置CuDNN目录

    <!-- CuDNN 3 and 4 are supported -->

    <CuDnnPath>D:\NVIDIA\CUDA\cuDNN</CuDnnPath>

    <ScriptsDir>$(SolutionDir)\scripts</ScriptsDir>

然后就是python的设置,由于我要使用python2.7,因此就改为

  <PropertyGroup Condition="'$(PythonSupport)'=='true'">

    <PythonDir>D:\anaconda3\envs\python27\</PythonDir>

    <LibraryPath>$(PythonDir)\libs;$(LibraryPath)</LibraryPath>

    <IncludePath>$(PythonDir)\include;$(IncludePath)</IncludePath>

</PropertyGroup>

 

保存后,然后打开Caffe.sln,在Release和 X64模式下编译

解决方案中有好几个项目,其实你可以选择性编译,类似test_all这种项目的话,只是测试用的,不编译也行。 最后编译pycaffe项目,以便把所有库文件都复制到pycaffe目录中。

 

最后,把生成的caffe-windows-ms\Build\x64\Release\pycaffe目录复制到

anaconda3\envs\python27\Lib\site-packages

 

然后尝试一下命令

conda activate python27

python

import caffe

发现以下错误

>>> import caffe

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

  File "D:\anaconda3\envs\python27\lib\site-packages\caffe\__init__.py", line 1, in <module>

    from .pycaffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDeltaSolver, AdamSolver, NCCL, Timer

  File "D:\anaconda3\envs\python27\lib\site-packages\caffe\pycaffe.py", line 13, in <module>

    from ._caffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, \

ImportError: DLL load failed: 找不到指定的模块。

 

这个坑了我很久,网上一大堆说无法解决,还扬言要重装anaconda,简直不要太坑。

其实只要运行一下生成的caffe.exe就知道是什么问题,其实是没有把依赖库的bins路径添加到path环境变量:

D:\caffe-windows-ms\windows\thirdparty\bins

添加完之后,再安装protobuf

conda activate python27

conda install protobuf

 

然后运行

conda activate python27

python

import caffe

即可成功运行

发布了12 篇原创文章 · 获赞 17 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/outtt/article/details/104976268