windows上安装caffe的两种方法:
1.使用caffe官网windows分支,分支安装步骤进行安装,但是难度比较大,会遇到较多问题。下面的介绍的安装方法是这种方法
https://github.com/BVLC/caffe/tree/windows
2.使用microsoft/caffe分支,据说比较简单,但没有尝试过
https://github.com/microsoft/caffe
安装步骤:
1.下载git源码
git clone https://github.com/BVLC/caffe.git
2.切换到windows分支
cd caffe
git checkout windows
3.配置scripts\build_win.cmd
在开头添加如下几行
#禁用NINJA,Ninja是用于控制编译的工具,Ninja相对于Makefile更注重于编译速度
set WITH_NINJA=0
#禁用python接口
set BUILD_PYTHON=0
set BUILD_PYTHON_LAYER=0
4.编译
scripts\build_win.cmd
注意先看后面的问题
问题:下载依赖库太慢
解决方法:
手动下载,然后放到指定目录(build_win.cmd有提示保存路径)
下载路径:分析cmake文件:caffe\cmake\WindowsDownloadPrebuiltDependencies.cmake
https://github.com/willyd/caffe-builder/releases/download/v1.1.0/libraries_v140_x64_py27_1.1.0.tar.bz2
问题:boost版本
现象:
CMake Error at D:/Program Files/CMake/share/cmake-3.12/Modules/FindBoost.cmake:1317 (file):
原因:
由于用cuda9.0, 所以boost版本必须1.65.1及以上
cmake 中FindBoost.cmake支持的boost版本低于1.66.0
解决方法:
参考https://tharindumathew.com/2018/04/13/using-caffe-on-windows-with-cuda-9-0-for-vs-2013-2015-and-2017/
使用boost1.65.1
手动下载boost_1_65_1-msvc-14.0-64.exe,并安装,且在cmake选项中指定boost的路径,而不是依赖库中的boost路径
修改scripts\build_win.cmd
cmake -G"!CMAKE_GENERATOR!" ^
-DBLAS=Open ^
-DCMAKE_BUILD_TYPE:STRING=%CMAKE_CONFIG% ^
-DBUILD_SHARED_LIBS:BOOL=%CMAKE_BUILD_SHARED_LIBS% ^
-DBUILD_python:BOOL=%BUILD_PYTHON% ^
-DBUILD_python_layer:BOOL=%BUILD_PYTHON_LAYER% ^
-DBUILD_matlab:BOOL=%BUILD_MATLAB% ^
-DCPU_ONLY:BOOL=%CPU_ONLY% ^
-DCOPY_PREREQUISITES:BOOL=1 ^
-DINSTALL_PREREQUISITES:BOOL=1 ^
-DUSE_NCCL:BOOL=!USE_NCCL! ^
-DCUDA_ARCH_NAME:STRING=%CUDA_ARCH_NAME% ^
-DBOOST_NO_BOOST_CMAKE=TRUE ^
-DBOOST_ROOT=F:/open_source_lib/boost/boost_1_65_1 ^
-DBOOST_LIBRARYDIR=F:/open_source_lib/boost/boost_1_65_1/lib64-msvc-14.0 ^
"%~dp0\.."
修改caffe\cmake\Dependencies.cmake
# ---[ Boost
find_package(Boost 1.65 REQUIRED COMPONENTS system thread filesystem)
list(APPEND Caffe_INCLUDE_DIRS PUBLIC ${Boost_INCLUDE_DIRS})
list(APPEND Caffe_DEFINITIONS PUBLIC -DBOOST_ALL_NO_LIB)
list(APPEND Caffe_LINKER_LIBS PUBLIC ${Boost_LIBRARIES})
问题:GPU architecture
现象:
Microsoft.CppCommon.targets(171,5): error MSB6006: “cmd.exe”已退出,代码为 1。
nvcc fatal : Unsupported gpu architecture 'compute_90'
原因:本机安装的cuda9.0,显卡NVIDIA GeForce 940MX
解决方法:
参考https://blog.csdn.net/Mynameisyournamewuyu/article/details/88380689
显卡的算力可以通过英伟达网站查看:https://developer.nvidia.com/cuda-gpus#collapseOne
本机Gefore 940M,采用Maxwell架构,算力5.0
修改scripts\build_win.cmd
set CUDA_ARCH_NAME=Maxwell
参考:
https://github.com/BVLC/caffe/tree/windows
https://tharindumathew.com/2018/04/13/using-caffe-on-windows-with-cuda-9-0-for-vs-2013-2015-and-2017/
https://blog.csdn.net/raby_gyl/article/details/84643160