前言
本来这篇文章是可以不用写的,如果NVIDIA给linux设计了RTX20系列notebook驱动的话,但可惜没有(现在有了,233),所以新买的笔记本无法使用caffe和TensorFlow的gpu版本。如果用cpu版本,i7还比不上MX150显卡,所以,有必要研究一下如何在现有的win10系统上安装AI的相关框架和驱动等配套程序(事实证明这也折腾了两三天,主要是caffe折腾的,这货在windows下一点也不比在linux下好安装)。
相关的软件包大部分可见如下百度云盘:
链接:https://pan.baidu.com/s/1b7fKLZZQB2pP4CGFm-BIQg
提取码:0pb8
硬件基础
win10系统
RTX2060笔记本显卡(已经自带驱动)
没有任何python环境及相关框架、包。
任务按先后顺序依次为:
查看笔记本显卡型号、安装显卡驱动、安装cuda9.0、安装cudnn、安装anaconda3-4.2.0、python2.7(anaconda3下安装)、numpy、matplotlib、opencv、TensorFlow-GPU(1.9.0)(仅支持python3.5)、vs2013、caffe(仅支持python2.7)
Table of Contents
1 查看笔记本显卡型号
2 安装显卡驱动
2.1 上官网查询(我没有走通)
2.2 通过 GeForce Experience 安装
3 安装cuda9.0
3.1选择cuda9.0的原因:
3.2 安装步骤
3.3 配置环境变量
3.4 命令行中进行检查
4 安装cudnn
4.1 下载
4.2 配置环境变量
5 安装anaconda3-4.2.0
5.1 选择anaconda3-4.2.0的原因
5.2 安装
5.3 环境变量配置
6 python2.7(anaconda3下安装)
6.1 创建
6.2 激活
6.3 退出
7 numpy
8 matplotlib
8.1 python2.7
8.2 python 3.5
9 opencv
9.1 下载
9.2 安装
10 TensorFlow-GPU(1.9.0)(仅支持python3.5)
10.1 选择1.9.0版本的原因
10.2 安装
11 visual studio 2013
11.1 选择vs2013原因
11.2 资源
12 caffe(仅支持python2.7)
12.1 选择Microsoft版本并选择python2.7的原因
12.2 下载
12.3 更改CommonSettings.props
12.4 vs2013 编译
12.4.1 首先设置libcaffe的属性
12.4.2 右键libcaffe,生成
12.4.3 编译其他文件
12.5 配置环境
12.5.1 MATLAB:
12.5.2 python配置:
步骤:
打开“我的电脑”
右键“此电脑”
点击“属性”
点击“设备管理器”
点开“显示适配器”
查看NVIDIA显卡型号
效果如图
可以看到这台电脑是RTX2060显卡,有两条路可以安装NVIDIA显卡驱动。
网址 https://www.geforce.cn/drivers
按照提示,相应输入自己电脑的硬件情况即可
点击下载exe,再安装即可。
网址 https://www.geforce.cn/geforce-experience/download 如图
点击下载,再安装。之后打开 GeForce Experience,菜单栏上方进入“驱动程序”,进行安装即可,后期也可以对驱动程序进行升级,如图
首先,这是一个稳定的版本
其次,TensorFlow-GPU最高支持cuda9,所以装cuda10就是作死
如果装了其他版本cuda的请先卸载掉,再安装cuda9.0,卸载方式
win10“在这里输入你要搜索的内容”输入控制面板,回车
点击“卸载程序”
点击“名称”排序
将NVIDIA CUDA *** X.X样式的其他版本的cuda组件删除。
先进入官网 https://developer.nvidia.com/cuda-90-download-archive
根据电脑的硬件配置选择,如图
点击Download下载,再进行安装。
win10搜索"path"
"环境变量"
系统变量新建"CUDA_PATH_V9_0"和"CUDA_PATH",均为之前安装的同一目录
以我为例,为"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.0"
win+R,输入cmd,回车
则cuda9.0已经正确安装。
进入官网,https://developer.nvidia.com/cudnn
选择 Download cuDNN ,之后将其解压,得到大目录下的三个子目录,再对应放在cuda的不同目录下,例如(根据自己的来)
接着再添加环境变量(根据自己的来)
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64
到此,cuDNN安装完成。
这个版本的anaconda3是基于python3.5的
caffe 仅支持Python2.7和Python3.5两个版本
安装了3.5以上版本的Python必须要卸载或者另装python3.5,所以多一事不如少一事
anaconda集成了python很多科学计算的库,方便安装、配置和管理python的不同版本
由于官网下载速度过慢,因此选择清华的镜像 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
ctrl+f搜索
Anaconda3-4.2.0-Windows-x86_64.exe
进行下载,然后安装,我放在了c盘目录下
C:\Anaconda3
C:\Anaconda3
C:\Anaconda3\Scripts
C:\Anaconda3\Library\bin
在开始菜单中打开 anaconda prompt
基于 python2.7 创建一个名为python2 的环境(期间会进行一些常用包的安装)
conda create --name python2 python=2.7
激活 python2环境(windows)
activate python2
linux/mac下为
source activate python2
退出python2(进入默认的python3.5)
deactivate python2
以上命令在普通命令行仍然适用。
通过激活和退出的方式分别安装python2.7和python3.5的相关包。
python2.7、3.5安装命令均为
pip install numpy
通过激活和退出的方式分别安装python2.7和python3.5的相关包。
由于python2.7对于matplotlib的支持有一定问题,因此我们只能选择一个较低的版本进行安装,但不影响功能。
pip install matplotlib==1.5.0
对python3没有影响,正常安装(不指定版本号则默认安装最新版本)
pip install matplotlib
进入官网 https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv
选择使用python2.7和python3.5的对应版本
搜索
opencv_python‑3.4.5+contrib‑cp35‑cp35m‑win_amd64.whl
和
opencv_python‑2.4.13.7‑cp27‑cp27m‑win_amd64.whl
之后进入下载目录进行安装(增加 --user 参数使用管理员权限)
通过激活和退出的方式分别选择python2.7和python3.5的pip
python3.5
pip install --user opencv_python‑3.4.5+contrib‑cp35‑cp35m‑win_amd64.whl
python2.7
pip install --user opencv_python‑2.4.13.7‑cp27‑cp27m‑win_amd64.whl
我在使TensorFlow-GPU进行编程的时候,由于是较新的1.12.0,好像是因为board还是其他什么由于版本过新,出了bug
1.9.0较新,也较为稳定
一些框架的源码要求tensorflow1.9.0以上版本
pip install tensorflow-gpu==1.9.0
由于win10系统不在支持python2.7的TensorFlow(CPU及GPU)版本,所以只能作罢。
网上的案例教程大都为2013(少数为2015)的visual studio版本
其实主要是因为caffe包是用windows 8 SDK编译的,若用2017的windows 10 SDK编译会出很多各种各样的问题
见开头的百度云盘(最稳定)
正常安装即可,如果安装了vs2017的话,建议将2013安装在另外的磁盘上,以免可能的冲突。
对windows系统更好的支持,少出bug
python3.5安装理论可行,但是安装中的bug千奇百怪,且和打地鼠一样越改bug越多而
python2.7安装一遍跑通
先去github下载下来caffe,并解压(我放在了c盘上,固态速度快)
github地址 https://github.com/Microsoft/caffe
接着,打开caffe下的Windows文件夹,找到一个名为CommonSettings.props.example的文件,并copy一份放在Windows文件下,更改附件名为CommonSettings.props,并对其进行修改配置(我用的是vscode)
xml项目 修改为 原因 CpuOnlyBuild
false 不止用cpu,还要用gpu UseCuDNN
true
要使用cudnn CudaVersion
9.0 之前安装的是cuda9.0 PythonSupport
true 支持python MatlabSupport
true 支持MATLAB CuDnnPath
C:\cudnn-9.0-windows10-x64-v7
之前解压的cuDNN文件夹,cuda的上一级 PythonDir
C:\Anaconda3\envs\python2\
anaconda下的python2.7虚拟环境 MatlabDir
C:\Program Files\MATLAB\R2016a
自己的MATLAB安装地址 第55行 IncludePath 加入$(MatlabDir)\toolbox\distcomp\gpu\extern\include
微软更新(否则编译时mxGPUArray.h找不到)
最终的全文如下
$(SolutionDir)..\Build
false
true
9.0
true
true
compute_35,sm_35;compute_52,sm_52
C:\cudnn-9.0-windows10-x64-v7
$(SolutionDir)\scripts
cublas.lib;cuda.lib;curand.lib;cudart.lib
cudnn.lib;$(CudaDependencies)
$(CuDnnPath)\cuda\lib\x64;$(LibraryPath)
$(CuDnnPath)\cuda\include;$(IncludePath)
$(BuildDir)\$(Platform)\$(Configuration)\
$(BuildDir)\Int\$(ProjectName)\$(Platform)\$(Configuration)\
$(OutDir);$(CUDA_PATH)\lib\$(Platform);$(LibraryPath)
$(SolutionDir)..\include;$(SolutionDir)..\include\caffe\proto;$(CUDA_PATH)\include;$(IncludePath)
C:\Anaconda3\envs\python2\
$(PythonDir)\libs;$(LibraryPath)
$(PythonDir)\include;$(IncludePath)
C:\Program Files\MATLAB\R2016a
$(MatlabDir)\extern\lib\win64\microsoft;$(LibraryPath)
$(MatlabDir)\extern\include;$(MatlabDir)\toolbox\distcomp\gpu\extern\include;$(IncludePath)
CPU_ONLY;%(PreprocessorDefinitions)
USE_CUDNN;%(PreprocessorDefinitions)
USE_CUDNN
WITH_PYTHON_LAYER;BOOST_PYTHON_STATIC_LIB;%(PreprocessorDefinitions)
MATLAB_MEX_FILE;%(PreprocessorDefinitions)
false
true
_SCL_SECURE_NO_WARNINGS;USE_OPENCV;USE_LEVELDB;USE_LMDB;%(PreprocessorDefinitions)
true
Full
NDEBUG;%(PreprocessorDefinitions)
MultiThreadedDLL
true
true
true
UseLinkTimeCodeGeneration
true
Disabled
_DEBUG;%(PreprocessorDefinitions)
MultiThreadedDebugDLL
true
接着,用vs2013的管理员模式(否则错误也是千奇百怪)打开caffe.sln(C:\caffe-master\windows\Caffe.sln)文件
大约10分钟之后,编译成功,这时caffe-matter文件夹所在的目录中,便多出了NugetPackages文件(第三方库文件)(嫌慢的去开头的百度云找,在安装过去)
之后依次编译caffe,matcaffe,pycaffe。为了保险,又右键解决方案,生成解决方案
此时caffe编译成功,但是要想使用,需要配置接口环境
(1)将上步release生成的matcaffe文件夹加入matlab的路径中
其次还要将D:\caffe\caffe-master\Build\x64\Release加入path环境变量之中
重启MATLAB,输入测试代码:caffe.reset_all
编译python支持库后,你还需要执行如下之一才能在python里使用:
设置环境变量 PythonPath,值为
复制目录
python测试,打开Windows的dos窗口
输出python,试着引用caffe :import caffe
会出现
ImportError: No module named google.protobuf.internal
则需要安装protobuf,使用pip进行安装,在dos窗口输入(注意:不要使用conda的命令,未安装成功)
pip install protobuf
如果又有
ImportError: No module named yaml
就
pip install pyyaml
安装成功后,在打开python试着引用caffe
恭喜你,装完了。