Windows10下搭建caffe过程记录

前言

最近在研究深度学习,原本想在ubuntu虚拟机里搭caffe,然而还是不习惯linux。时间紧迫,还是先在熟悉的Windows下建一个吧。整篇博客都是边安装边写的,中间有很多报错,本来想装GPU版,但其实也搞不清GPU和CPU的前置条件,最后还是只装了CPU。这篇记录只是写给自己看的,以免以后记不清细节。

以下是整个安装过程的参考文档:

[1]https://www.cnblogs.com/bile/p/9055368.html

[2]https://www.e-learn.cn/content/qita/1193355

[3]https://blog.csdn.net/weixin_37621229/article/details/80547934

[4]https://github.com/BVLC/caffe/tree/windows

[5]http://www.likecs.com/default/index/show?id=15000

[6]https://blog.csdn.net/qq_37817177/article/details/80604294

[7]https://www.cnblogs.com/nikosoft/p/11044426.html

[8]https://blog.csdn.net/COCO56/article/details/102425383

[9]http://morecoder.com/article/1024077.html

[10]https://www.cnblogs.com/youngsea/p/9430875.html

 

安装环境

Windows10 64位,Visual Studio2015, cmake3.14.7, CUDA8.0, cudnn5.1

在安装caffe前请务必保证以上各项已安装配置完成,如果是GPU版则需要cuda和cudnn,好像还需要nvidia的显卡驱动,其中CUDA和cudnn最好安装8.0版本,CPU版则只需要前3个就好了。我一开始cuda装的10.1,出现了麻烦的错误,最后把它们卸载了。

 

Visual Studio2015

根据官方文档[4]的说法,VS只能下载2013或者2015版本,并不清楚2017甚至2019是否适用,保险起见这里下载的是2015。

我选择的是第4个,VS2015、CUDA8.0、python2.7。

可以去官网下载对应版本:

https://my.visualstudio.com/Downloads?q=visual%20studio%202015&wt.mc_id=o~msft~vscom~older-downloads

注意在下载的时候勾选Visual C++选项,不然会获得跟我之后安装caffe时一样的错误:

大多数人推荐安装到c盘,记住预留出足够的空间,一共12G左右。

 

cmake3.14.7

cmake的版本应该没有要求,这里我下载的是当时的最新版。

下载地址:https://cmake.org/download/

 

CUDA8.0

下载地址:https://developer.nvidia.com/cuda-80-ga2-download-archive

第3行是电脑的版本,不是CUDA的版本。

一直默认安装即可,安装完成后把CUDA安装目录下的bin和lib\x64添加到Path环境变量中:

值得注意的是,这里我改了安装目录到d盘,结果它还还是安到了c盘。并且我在d盘建的空文件夹也没了,导致我c盘空间急剧不足,不知道是我哪里点错了还是它只能安到c盘。安好后的目录为:C:\Program Files\NVIDIA GPU Computing Toolkit 。

(这里使用的是精简安装,应该是它自带的显卡驱动装在了c盘)

 

cudnn5.1

下载地址:https://developer.nvidia.com/rdp/cudnn-download

需要注册下载,注册一个账号即可:

注意CUDA和cudnn版本应对应,cuda8.0对应的是cudnn5.1。

下载完成后,解压,并把bin,include,lib中的文件分别拷贝到CUDA的对应文件夹内:

   

把 ..\NVIDIA GPU Computing Toolkit\v8.0\extras\CUPTI\lib64 里面的 cupti64_101.dll 复制到 ..\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin 路径下:

根据你的版本,文件名称会略有不同,但是看得出大致是哪一个。

 

以上,所有环境已配置完毕,可以开始安装caffe。

 

caffe

根据官方文档[4]的说法,python只能用2.7或3.5,这里我下载的是2.7。

在你想安装caffe的位置新建一个文件夹,在命令控制台中进入该文件夹,执行以下命令:

C:\Projects> git clone https://github.com/BVLC/caffe.git
C:\Projects> cd caffe
C:\Projects\caffe> git checkout windows

进入scripts目录,修改 build_win.cmd 文件:

这里我看到它写了这么一句:

然后就在下面加了对应的语句,运行后报错:

系统找不到指定的驱动器。
系统找不到指定的驱动器。
INFO: ============================================================
INFO: Summary:
INFO: ============================================================
INFO: MSVC_VERSION               = 14
INFO: WITH_NINJA                 = 0
INFO: CMAKE_GENERATOR            = "Visual Studio 14 2015 Win64"
INFO: CPU_ONLY                   = 1
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:\program files\ProFile\DeepLearning\visualStudio\Common7\Tools\..\..\VC\vcvarsall.bat"' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
CMake Warning:
  No source or binary directory provided.  Both will be assumed to be the
  same as the current working directory, but note that this warning will
  become a fatal error in future CMake releases.


CMake Error: The source directory "D:/program files/ProFile/DeepLearning/caffe/scripts/build" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
'"D:\program files\ProFile\DeepLearning\caffe\scripts\\.."' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
ERROR: Configure failed

删除多加的语句后运行:

'"D:\program files\ProFile\DeepLearning\visualStudio\Common7\Tools\..\..\VC\vcvarsall.bat"' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
CMake Error: Error: generator : Visual Studio 14 2015 Win64
Does not match the generator used previously: Ninja
Either remove the CMakeCache.txt file and CMakeFiles directory or choose a different binary directory.
ERROR: Configure failed

根据提示删除 CMakeCache.txt 和 CMakeFiles

我一开始在下载的时候空间不够,因此没下载 Visual C++。

在应用中找到 VS2015 ,点击修改,添加 VC++

下载完成后再次运行:

-- Selecting Windows SDK version  to target Windows 10.0.17134.
CMake Warning (dev) at cmake/Misc.cmake:32 (set):
  implicitly converting 'BOOLEAN' to 'STRING' type.
Call Stack (most recent call first):
  CMakeLists.txt:33 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Error at cmake/WindowsDownloadPrebuiltDependencies.cmake:40 (message):
  Could not find url for MSVC version = 1900 and Python version = 3.7.
Call Stack (most recent call first):
  CMakeLists.txt:77 (include)


-- Configuring incomplete, errors occurred!
See also "D:/program files/ProFile/DeepLearning/caffe/scripts/build/CMakeFiles/CMakeOutput.log".
ERROR: Configure failed

根据[5]的说法,我删除了上面提到过的 CMakeCache.txt 文件,依然报错,但是运行了下去,运行完后:

CMake Error at cmake/WindowsDownloadPrebuiltDependencies.cmake:72 (file):
  file DOWNLOAD HASH mismatch

    for file: [C:/Users/lakuite/.caffe/dependencies/download/libraries_v140_x64_py27_1.1.0.tar.bz2]
      expected hash: [17eecb095bd3b0774a87a38624a77ce35e497cd2]
        actual hash: [9d79e293c8cd1ec6bdd66d0bd1737add07af011e]
             status: [56;"Failure when receiving data from the peer"]

Call Stack (most recent call first):
  CMakeLists.txt:77 (include)

77行报错的原因是我装了3.7和2.7的python,它默认使用了3.7,导致版本不对。

简单粗暴的解决方式是直接把2.7的环境变量提到3.7的前面,删除build文件下所有文件,然后运行:

-- Selecting Windows SDK version  to target Windows 10.0.17134.
CMake Warning (dev) at cmake/Misc.cmake:32 (set):
  implicitly converting 'BOOLEAN' to 'STRING' type.
Call Stack (most recent call first):
  CMakeLists.txt:33 (include)
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Error at cmake/WindowsDownloadPrebuiltDependencies.cmake:89 (message):
  Something went wrong while dowloading dependencies could not open
  caffe-builder-config.cmake
Call Stack (most recent call first):
  CMakeLists.txt:77 (include)

这次77行错误消失了,33行的错误暂时忽略,有了新的错误 caffe-builder-config.cmake

该错误的原因是在下载 libraries_v140_x64_py27_1.1.0.tar.bz2 时出现了问题。

下载 https://github.com/willyd/caffe-builder/releases/download/v1.1.0/libraries_v140_x64_py27_1.1.0.tar.bz2 ,压缩包放在 C:\Users\<电脑名>\.caffe\dependencies\download 目录下,并解压到上一级目录:

  

再次运行,这次成功的执行了,最后一个报错:

CMake Error at CMakeLists.txt:143 (add_dependencies):
  The dependency target "pycaffe" of target "pytest" does not exist.

该错误的原因是我之前切换了python2.7,但numpy库是在之前python3.7的时候下的,2.7环境下并没有配置。

重新打开命令窗口,执行以下命令:

pip install numpy
pip install matplotlib

安装成功后再次进入到 build_win.cmd 目录下运行该文件:

caffeproto.vcxproj -> D:\program files\ProFile\DeepLearning\caffe\scripts\build\lib\Release\caffeproto.lib
  Building NVCC (Device) object src/caffe/CMakeFiles/cuda_compile_1.dir/layers/Release/cuda_compile_1_generated_absval_
  layer.cu.obj
  nvcc fatal   : Unsupported gpu architecture 'compute_20'
  CMake Error at cuda_compile_1_generated_absval_layer.cu.obj.Release.cmake:219 (message):
    Error generating D:/program
    files/ProFile/DeepLearning/caffe/scripts/build/src/caffe/CMakeFiles/cuda_compile_1.dir/layers/Release/cuda_compile_
  1_generated_absval_layer.cu.obj


C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets(171,5): error MSB6006: “cmd.exe”已 退出,
代码为 1。 [D:\program files\ProFile\DeepLearning\caffe\scripts\build\src\caffe\caffe.vcxproj]
ERROR: Build failed

继续出错,此错误我估计是因为我的CUDA是10.0版本的原因。

在 cuda_compile_1_generated_absval_layer.cu.obj.Release.cmake 中查找 compute_20 ,并删除:

然而运行后这行又重新生成了,说明它只是生成文件不是配置文件。

根据[6]中所说的,将 build_win.cmd 中的 CUDA_ARCH_NAME=Auto 改成 CUDA_ARCH_NAME=Kepler :

运行后报.caffe\dependencies\libraries_v140_x64_py27_1.1.0\libraries\include\boost-1_61\boost\config\compiler\nvcc.hpp里的22行C1017错误。

打开 nvcc.hpp 文件,注销掉这3行:

再次运行,满屏飙黄,好歹没有报红了。

 

接着安装python版本,在命令控制台输入:

pip install --yes cmake ninja numpy scipy protobuf==3.1.0 six scikit-image p

并将 caffe / python 下的 caffe 文件复制到 python 安装路径下的 lib/site-packages  下:

  

在 cmd 中输入 python ,而后执行 import caffe ,报错:

ImportError: No module named skimage.io

根据文档[9],输入:

pip install -U scikit-image

import caffe 后又报了一个错:

ImportError: No module named scipy

根据陆续类似报错接连输入:

pip install scipy
pip install protobuf

再次python,import caffe,终于成功!

 

最后在 VS2015 中打开 Caffe.sln 文件:

选择 Release x64,右键下图蓝色区域,生成解决方案:(这里操作时忘截图了)

 

成功后把 caffe.exe 的目录添加到环境变量中:

我添加时报错:

参考文档[8],得以解决。

在命令控制台的对应路径下输入 caffe.exe --version ,得到版本信息,说明caffe已经安装成功了:

 

在mnist数据集中进行测试

参考文档[10],下载文件: https://link.zhihu.com/?target=http%3A//yann.lecun.com/exdb/mnist/

解压得到以下文件:

新建文本文档 conv.bat ,内容如下:

"..\caffe\scripts\build\examples\mnist\Release\convert_mnist_data.exe" "..\train-images.idx3-ubyte" "..\train-labels.idx1-ubyte" "..\mnist_train_lmdb"
echo.
"..\caffe\scripts\build\examples\mnist\Release\convert_mnist_data.exe" "..\t10k-images.idx3-ubyte" "..\t10k-labels.idx1-ubyte" "..\mnist_test_lmdb"
pause

其中,第一行3个路径分别为你安装的 caffe 路径下 convert_mnist_data.exe 程序的路径、刚刚下载的 train-images.idx3-ubyte 和 train-labels.idx1-ubyte 文件路径、以及新生成的 mnist_train_lmdb 文件夹存储路径。第3行同理。

注意如果路径中若文件夹名有空格,需用英文双引号括起来,不能存在中文名称,否则会运行失败。

双击运行 conv.bat 文件:

这里有报错:

Cannot create Cublas handle. Cublas won't be available.
Cannot create Curand generator. Curand won't be available.

显卡驱动过高在这里埋下了伏笔。

在指定目录下生成了文件:

   

caffe 的安装目录下搜索 lenet_solver.prototxt 和 lenet_train_test.prototxt 文件,修改相应的位置:

lenet_solver.prototxt 第2行改为 lenet_train_test.prototxt 的路径:

lenet_train_test.prototxt 第14行和31行分别改成 mnist_train_lmdb 和 mnist_test_lmdb 文件夹的路径:

再新建一个 new.bat 文件,内容为:

"..\caffe\scripts\build\tools\Release\caffe.exe"  train --solver="..\caffe\examples\mnist\lenet_solver.prototxt"

第一个路径为 caffe.exe 路径,第二个路径为 lenet_solver.prototxt 路径。

运行后报错:

该错误原因是 lenet_solver.prototxt 中应该把 \ 改为 / :

再次运行该 bat 文件:

CUDA驱动程序版本不适合CUDA运行时版本,该错误估计是因为我装的是10.1的cuda,百度上的解决方式是,在 cmd 输入 nvidia-smi ,报错如下:

NVIDIA-SMI has failed because you are not:
        a) running as an administrator or
        b) there is not at least one TCC device in the system

用管理员权限打开 cmd ,再次输入:

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. 
Make sure that the latest NVIDIA driver is installed and running. 
This can also be happening if non-NVIDIA GPU is running as primary display, 
and NVIDIA GPU is in WDDM mode.

这时我才注意到GPU应该是要有NVIDIA的显卡驱动的,右键 我的电脑 --> 管理 --> 设备显示器 --> 显示适配器

很显然,我从一开始就没有驱动,这可能不仅仅是cuda版本的问题了。

看着我电脑不足的存储空间,最后我把cuda和cudnn都卸载了,返回caffe的第一个步骤,进入scripts目录,修改 build_win.cmd 文件:

把上图中第3个红框中的 0 改为 1,安装仅CPU版本。

接下来运行 build_win.cmd 文件,等待几分钟后无报错,运行完毕。然后和上面步骤一样的,在 VS2015 中打开 Caffe.sln 文件,生产解决方案。重复以上步骤,最后运行 new.bat 文件,成功运行!

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
### 回答1: 要在Windows 10上安装Caffe,您需要按照以下步骤进行操作: 1. 安装CUDA和cuDNN:Caffe需要CUDA和cuDNN来加速计算。您可以从NVIDIA官网下载并安装最新版本的CUDA和cuDNN。 2. 安装依赖项:Caffe需要一些依赖项,如Boost、OpenCV、protobuf等。您可以使用Chocolatey或手动安装这些依赖项。 3. 下载Caffe源代码:您可以从Caffe的GitHub页面下载源代码。 4. 编译Caffe:使用Visual Studio或Cygwin编译Caffe源代码。 5. 测试Caffe:运行Caffe的测试套件,确保一切正常。 以上是在Windows 10上安装Caffe的基本步骤。请注意,这只是一个概述,具体步骤可能会因您的环境而异。建议您查看Caffe的官方文档以获取更详细的安装说明。 ### 回答2: Caffe是一个流行的深度学习框架,它被广泛应用于图片分类、物体检测和图像分割等领域。在Windows10上安装Caffe需要以下步骤: 1. 安装CUDA和cuDNN Caffe依赖于CUDA和cuDNN,因此在安装Caffe之前,需要安装CUDA和cuDNN。首先要检查自己的Nvidia显卡版本和CUDA的版本是否兼容。确保自己的显卡支持CUDA,然后下载和安装对应版本的CUDA和cuDNN。关于CUDA和cuDNN的安装教程可以在官方网站上找到。 2. 安装Mingw-w64 Mingw-w64是一个Windows下的工具集,可以让用户开发人员在Windows操作系统上编译和构建C和C++程序。在安装Mingw-w64之前,需要从官方网站下载并安装CMake工具。 3. 安装Git和下载Caffe源代码 Caffe是一个开源框架,源代码托管在Github上。因此,需要下载并安装Git,然后从Github上克隆Caffe的源代码。使用Git Bash或cmd进入到需要下载Caffe的文件夹,运行以下命令: git clone https://github.com/BVLC/caffe.git 4. 编译Caffe 编译Caffe需要使用CMake和Mingw-w64。在源代码目录下创建一个新的目录,比如build,然后使用CMake进行配置,执行以下命令: cd caffe mkdir build cd build cmake -G "MinGW Makefiles" .. 这些命令会在build文件夹中生成一个Makefile。然后,使用Mingw-w64进行编译,输入以下命令: mingw32-make Windows平台下,Caffe不支持Python3.x,只能使用Python2.x。通过添加PYTHON_INCLUDE和PYTHON_LIBRARIES等环境变量,在Caffe中启用Python支持。例如: set PYTHON_INCLUDE=C:\Python27\include set PYTHON_LIBRARIES=C:\Python27\libs\python27.lib 最后,Caffe将被编译成一个可执行文件,可以运行Caffe的Python例子,或使用它编写自己的样例。 总体来说,Windows平台下安装Caffe需要安装多个配置软件,并需要进行编译和调整环境变量。对于有一定编程经验和计算机基础的人来说,安装Caffe不算太难,但对于初学者来说可能有些困难。如果需要,可以参考一些详细的教程或者请专业人士帮助安装。 ### 回答3: Caffe是一个基于C++和CUDA编写的深度学习框架,其强大的计算性能、灵活的设计和广泛的应用性使其成为深度学习领域中备受关注的框架之一。在Windows10上安装Caffe并使用其进行深度学习研究和开发是很有必要的。 下面是CaffeWindows10上的安装步骤: 步骤1:安装CUDA和cuDNN 在Windows10上使用Caffe需要安装CUDA和cuDNN,这两个工具可以提供强大的GPU计算功能,加速深度学习的训练和预测。 首先需要安装NVIDIA显卡驱动程序和CUDA Toolkit,这可以在NVIDIA官网上下载。然后下载cuDNN库文件并将其解压至CUDA安装目录下的相应文件夹中。 步骤2:安装依赖项 在安装Caffe之前,需要安装一些依赖项,包括Git、Python、Boost和OpenCV等。Git可以在官网上下载安装程序,Python、Boost和OpenCV等依赖项可以使用Anaconda或通过pip安装。 步骤3:下载和编译Caffe源码 下载Caffe源码文件并解压。根据CUDA和cuDNN的版本及电脑的配置,修改Makefile文件中的参数。在命令行终端中运行make编译Caffe源代码。编译成功后,Caffe将生成可执行文件,可以在终端中使用这些文件。 步骤4:设置环境变量 在Windows10系统环境变量中设置Caffe路径和Python路径。添加路径后,可以在任何终端中使用Caffe。 在安装完毕后,可以使用以下命令运行Caffecaffe --version 这个命令可以检查Caffe是否成功安装,并显示版本信息。同时,应该自己编译自己需要的模块,如python支持等。 总体来说,在Windows10系统上安装Caffe需要繁琐的操作和编译过程,但是具有较好的灵活性和性能优势。为了确保成功安装,应该仔细阅读官方文档和参考其他资料。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值