[亲身体验]从此windows编译caffe不再陌生 (win10 + Anaconda python3.5 + cuda 8.0)

Topic---Windows 10 上装caffe(确切说是借助VScmake编译出python中可以importcaffe包)

 

背景介绍

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

首先按照所说预装了VS2015,cmake和cuda8.0。

但是我在安装VS2015的时候忘记安装Visual C++,这导致第一步的问题

默认使用的Python是3.6版本的,这导致第二步的问题

以下段落可以看作一个日记,是我边配置边记录的。

 

一、按照以上地址的教程进行,到运行build_win.cmd时出现了问题

命令行输出如下:

D:\caffe\caffe> scripts\build_win.cmd
系统找不到指定的驱动器。
系统找不到指定的驱动器。
INFO: ============================================================
INFO: Summary:
INFO: ============================================================
INFO: MSVC_VERSION               = 14
INFO: WITH_NINJA                 = 1
INFO: CMAKE_GENERATOR            = "Ninja"
INFO: CPU_ONLY                   = 0
INFO: CUDA_ARCH_NAME             = Auto
INFO: CMAKE_CONFIG               = Release
INFO: USE_NCCL                   = 0
INFO: CMAKE_BUILD_SHARED_LIBS    = 0
INFO: PYTHON_VERSION             = 2
INFO: BUILD_PYTHON               = 1
INFO: BUILD_PYTHON_LAYER         = 1
INFO: BUILD_MATLAB               = 0
INFO: PYTHON_EXE                 = "python"
INFO: RUN_TESTS                  = 0
INFO: RUN_LINT                   = 0
INFO: RUN_INSTALL                = 0
INFO: ============================================================
'"D:\Visual Studio 2015\Common7\Tools\..\..\VC\vcvarsall.bat"' 不是内部或外部命令,也不是可运行的程序或批处理文件。
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:18 (project):
 No CMAKE_C_COMPILER could be found.

 Tell CMake where to find the compiler by setting either the environment
 variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
 the compiler, or to the compiler name if it is in the PATH.

CMake Error at CMakeLists.txt:18 (project):

 No CMAKE_CXX_COMPILER could be found.

 Tell CMake where to find the compiler by setting either the environment
 variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
 to the compiler, or to the compiler name if it is in the PATH.

-- Configuring incomplete, errors occurred!

See also "D:/caffe/caffe/build/CMakeFiles/CMakeOutput.log".
See also "D:/caffe/caffe/build/CMakeFiles/CMakeError.log".

ERROR: Configure failed

在stackoverflow上搜索,经过自己分析之后的问题原因是:

缺少vcvarsall.dat文件。

原因:根据错误分析,该命令首先是想要运行一个dat文件,之后才是cmake的c和c++编译器找不到。那么我们可以推断出,dat文件的作用就是帮助cmake设置这两个编译器的地址变量。

再继续分析,原来缺少这个文件的原因是是我在安装VS2015时没有安装 Visual C++

 

二、装完Visual c++之后,虽然之前的问题解决了,但是又有了新的问题

CMake Error at cmake/WindowsDownloadPrebuiltDependencies.cmake:40 (message):

 Could not find url for MSVC version = 1900 and Python version = 3.6.

Call Stack (most recent call first):

 CMakeLists.txt:77 (include)

经过调研发现,问题的原因是编译时不支持python3.6,只能支持到3.5。

解决方法:

装了一个自带python3.5的Anaconda。

参考如下:https://blog.csdn.net/jfsufeng/article/details/80092468

我选择了第三个方法。

由于windows中更改默认python的方法是在环境变量中改变各个python的先后位置即可,所以我先暂时把Anaconda的python3.5改到了前面。

 

依然失败。肯定是路径设置有问题。

但是可以确认,输入python默认就是anacondapython3.5

于是我进入WindowsDownloadPrebuiltDependencies.cmake,把python版本相关的变量直接改成了35

成功了!![亲身体验]从此windows编译caffe不再陌生 (win10 + Anaconda python3.5 + cuda 8.0)_第1张图片

忽然明白了:这段代码的意思就是要先确认python是3.5才会下载相应内容。我已经手动确认了,所以我就直接改成3.5了,也就可以下载了。

 

三、终于开始build了。期间无数warning,但是仍然出错。。。

[亲身体验]从此windows编译caffe不再陌生 (win10 + Anaconda python3.5 + cuda 8.0)_第2张图片

参考了网上搜索的建议,WITH_NINJA设置为0.就是不用ninja进行编译。

https://yiqixie.com/d/loadimage?id=8215427335851765584

这个错误提示还算明晰。。按照他所说的,删除了CMakeCache.txt和CMakeFiles文件夹(如下)

https://yiqixie.com/d/loadimage?id=6107372858778222719

https://yiqixie.com/d/loadimage?id=6729287215202234581

再来!

[亲身体验]从此windows编译caffe不再陌生 (win10 + Anaconda python3.5 + cuda 8.0)_第3张图片

这个蓝色看起来十分舒爽。

额,这满屏的warning。。。

[亲身体验]从此windows编译caffe不再陌生 (win10 + Anaconda python3.5 + cuda 8.0)_第4张图片

这些汉字……可能是文字编码的问题吧


[亲身体验]从此windows编译caffe不再陌生 (win10 + Anaconda python3.5 + cuda 8.0)_第5张图片
经历了两个多小时,最终还是成功了。。。警告数惊人。

 

四、最后一步,将path\to\your\caffe\python\caffe文件夹复制到Anacodasite-package路径下。

https://yiqixie.com/d/loadimage?id=-3272509708571090722

在python中成功import

 

总结

1.安装VS2015的时候记得要安装Visual C++组件

2.python一定要是3.5版本

3.默认使用ninja进行编译,但最好不用------在build_win.cmd中WITH_NINJA设置为0即可。

4.有个没提到的部件需要装一下:protobuf。命令:conda install protobuf

你可能感兴趣的:([亲身体验]从此windows编译caffe不再陌生 (win10 + Anaconda python3.5 + cuda 8.0))