注意,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
本文主要介绍的Windows的github版本安装,虽然不推荐用这个版本安装,但是看一下防止以后掉到类似的坑也是有用的,如果要使用官网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
即可成功运行