安装caffe最麻烦的是需要安装很多的依赖包,这里将依赖包打包到一起,直接编译安装即可,省去了很多的麻烦。
1.编译环境:
Win10 + VS2019 + caffe cpu版本 + python3
caffe-windows和依赖包下载链接如下:
链接:https://pan.baidu.com/s/1-ivLyQ_pL2AuIu_mD3VFBg
提取码:x2l9
2、 编译依赖包:
我这里安装到“D://caffe/” 下
将下载的依赖包caffe-build-auto-v1.rar解压到D://caffe目录下,命名为caffe-build-auto。
打开VS2019的命令终端
x64 Native Tools Command Prompt for VS 2019
进入到caffe-build-auto/目录,可以找到build-VS2019.bat和build-VS2017.ba两个编译脚本
默认依赖安装包里有python2的库,如果安装python2可以直接执行build-VS2019.bat,如果使用python3的话,要修改build-VS2019.bat脚本如下(我使用的python3是在C://ProgramData/Anaconda3里):
@setlocal
@echo off
echo 1/11.修改部分packages...
::xcopy /y caffe-builder-patch\packages caffe-builder\packages /s
cmake -E copy_directory caffe-builder-patch\packages caffe-builder\packages
echo 2/11.生成sln解决方案...
cd caffe-builder
Mkdir build
Cd build
cmake ../ -G "Visual Studio 16 2019"^
-D CB_BUILD_ALL:BOOL=ON ^
-D ZLIB_LIB_PREFIX:STRING=caffe ^
-D ZLIB_BUILD_SHARED_LIBS:BOOL=ON ^
-D GFLAGS_BUILD_SHARED_LIBS:BOOL=ON ^
-D GLOG_BUILD_SHARED_LIBS:BOOL=ON ^
-D HDF5_BUILD_SHARED_LIBS:BOOL=ON ^
-D HDF5_LIB_PREFIX:STRING=caffe ^
-D BOOST_BUILD_SHARED_LIBS:BOOL=ON ^
-D LEVELDB_BUILD_SHARED_LIBS:BOOL=OFF ^
-D LMDB_BUILD_SHARED_LIBS:BOOL=OFF ^
-D OPENCV_BUILD_SHARED_LIBS:BOOL=ON ^
-D PROTOBUF_BUILD_SHARED_LIBS:BOOL=OFF ^
-D OPENBLAS_BUILD_SHARED_LIBS:BOOL=ON ^
-D SNAPPY_BUILD_SHARED_LIBS:BOOL=OFF^
-D PYTHON_EXECUTABLE:STRING=C:/ProgramData/Anaconda3/python.exe^
-D GIT_EXECUTABLE:STRING=%CD:\=/%/../../caffe-builder-patch/PortableGit/bin/git.exe
echo 3/11.Copy相应的第三方源码到build文件夹...
cd ../../
::xcopy /y caffe-builder-patch\build caffe-builder\build /s
cmake -E copy_directory caffe-builder-patch\build caffe-builder\build
echo 4/11.仅生成opencv_download.vcxproj..
cd caffe-builder\build\packages\opencv
devenv opencv.sln /Build "DEBUG" /Project opencv_download.vcxproj
cd ../../../../
echo 5/11.Copy opencv第三方包到caffe-builder\build\opencv\opencv_download-prefix\src\opencv_download\3rdparty文件夹...
::xcopy /y caffe-builder-patch\opencv-download\build caffe-builder\build /s
cmake -E copy_directory caffe-builder-patch\opencv-download\build caffe-builder\build
echo 6/11.仅生成boost_download.vcxproj...
cd caffe-builder\build\packages\boost
devenv boost.sln /Build "DEBUG" /Project boost_download.vcxproj
cd ../../../../
echo 7/11.生成project-config.jam,设置use msvc
echo import option ; > project-config.jam
for /f "tokens=*" %%i in ('where cl.exe') do set CLPATH=%%i
set CLPATH=using msvc : 14.2 : "%CLPATH%";
echo %CLPATH% >> project-config.jam
echo option.set keep-going : false ; >> project-config.jam
echo 8/11.生成project-config.jam,设置python3.6
set pythonPATH=C:\\ProgramData\\Anaconda3
if "%Platform%"=="x86" GOTO SETX86
if "%Platform%"=="x64" GOTO SETX64
:SETX86
set pythonPATH=%pythonPATH%
GOTO OUTPUTPYTHON
:SETX64
set pythonPATH=%pythonPATH%
GOTO OUTPUTPYTHON
:OUTPUTPYTHON
set pythonSTR=using python : 3.6 : "%pythonPATH% " : "%pythonPATH%\\include" : "%pythonPATH%\\libs" ;
echo %pythonSTR% >>project-config.jam
echo 9/11.拷贝project-config.jam
cmake -E copy project-config.jam caffe-builder\build\packages\boost\boost_download-prefix\src\boost_download\project-config.jam
del project-config.jam
echo 10/11. 更新gflags、glog、snappy、leveldb的stamp
echo 请等待60s,请务中断,否则生成时间标签不够
timeout /T 60 /NOBREAK
cmake -E copy caffe-builder-patch\build\packages\gflags\gflags_download-prefix\src\gflags_download-stamp\gflags_download-gitclone-lastrun.txt caffe-builder\build\packages\gflags\gflags_download-prefix\src\gflags_download-stamp\gflags_download-gitclone-lastrun.txt
cmake -E copy caffe-builder-patch\build\packages\glog\glog_download-prefix\src\glog_download-stamp\glog_download-gitclone-lastrun.txt caffe-builder\build\packages\glog\glog_download-prefix\src\glog_download-stamp\glog_download-gitclone-lastrun.txt
cmake -E copy caffe-builder-patch\build\packages\snappy\snappy_download-prefix\src\snappy_download-stamp\snappy_download-gitclone-lastrun.txt caffe-builder\build\packages\snappy\snappy_download-prefix\src\snappy_download-stamp\snappy_download-gitclone-lastrun.txt
cmake -E copy caffe-builder-patch\build\packages\leveldb\leveldb_download-prefix\src\leveldb_download-stamp\leveldb_download-gitclone-lastrun.txt caffe-builder\build\packages\leveldb\leveldb_download-prefix\src\leveldb_download-stamp\leveldb_download-gitclone-lastrun.txt
echo 11/11.生成完成,项目文件build/caffe-builder.sln ...
::cd caffe-builder\build
::cmake --build .
popd
@endlocal
之后会自动生成caffe-builder.sln解决方案,进入到D:\caffe\caffe-build-auto\caffe-builder\build,
打开caffe-builder-master\build\caffe-builder.sln
选择解决方案配置为Release,编译生成解决方案即可。
如下错误并不影响。是config配置时测试信息。
3、编译caffe
1 下载源码
https://github.com/BVLC/caffe
git clone https://github.com/BVLC/caffe.git
cd caffe
git checkout windows
也可以解压caffe-windows.zip。默认为此。
2 配置和生成
打开:
caffe-windows\caffe-windows\cmake\ WindowsDownloadPrebuiltDependencies.cmake
将脚本全部注释掉,在最后加一行:
include(D:/caffe/caffe-build-auto/caffe-builder/build/libraries/caffe-builder-config.cmake)
打开
caffe\caffe-build-auto\caffe-builder\build\libraries\OpenCVConfig.cmake
添加如下:
set(OpenCV_LIB_PATH "${OpenCV_CONFIG_PATH}/lib")
3 把BLAS的Atlas改为Open
下载Cmake,cmake-gui.exe。
4 配置python
点击Configure,Generate。
打开caffe.sln编译即可。
使用lenet训练使用参考:Caffe-windows入门学习,编译、训练、测试详细教程_wg-CSDN博客_caffe windows 编译
参考:https://blog.csdn.net/waji2000/article/details/105155198