现在很多深度学习的入门者在网上通过百度谷歌都找不到合适的深度学习环境配置资料,要么内容很杂乱,要么就是教程已经过时,实际安装操作过程中各种问题。
为此,我特地尝试了一下在windows10下去安装爬坑深度学习环境。当前最火爆的深度学习框架当属Pytorch,tensorflow也还不错,但是由于其上手易度不如Pytorch,还是稍微逊色一些,尤其是这两年cvpr的很多论文一大部分都是基于Pytorch。所以我特地尝试安装Pytorch。现在Pytorch大部分安装的都是GPU显卡版,虽然不是很明白整个环境是怎么连接起来的,但是我们只需要把环境搭建好,会使用Pytorch进行GPU并行计算就可以了。
一、概览
先打开Pytorch官网,上面把安装说的非常明白,其实最推荐大家去参考官网的教程,这个是最与时俱进,同时也说的比较仔细,比起百度谷歌CSDN之类更加靠谱一些,唯一的缺点就是英语。
这个表格给出了Pytorch当前最新的稳定版本(1.7.0),各种操作系统版式,Linux,Mac和Windows都有,安装的方式,使用的编程语言,CUDA版本,不得不承认Pytorch官网更新的很快,上周安装的还是1.6.0版本,这周打开直接是1.7.0了,同时还支持CUDA11.0了,上周只能支持到CUDA10.2。一般建议安装最新的稳定版;操作系统咱们这块选择Windows;安装方式当前用的多的还是Conda和Pip,这篇文章我主要说怎么拿Conda安装,这个非常方便;CUDA版本建议下载Pytorch当前支持最新的版本,比如11.0,下太老的版本,Nvidia显卡驱动会提示CUDA版本太老了。首先是把深度学习框架以外的CUDA和CuDnn安装好,这个是独立于深度学习框架的。
二、准备工作
在安装CUDA之前,根据CUDA官方安装文档提示,首先需要安装好对应版本的Visual Studio:
VS下载个社区版Community的就可以了,我装的是最新的VS2019-16.7.7,一定要记得安装对应版本的VS,不然其他的都安装好了以后,编译程序的时候会提示这个错误:
UserWarning: Error checking compiler version for cl: [WinError 2] The system cannot find the file specified
这个报错里面的cl.exe就必须通过安装vs来解决。下载下来的直接是Visual Studio Installer,以后都可以通过这个来管理VS里面需要下载或者安装的模块:
把使用C++的桌面开发勾选上,就能把cl.exe安装好。整个安装好了以后,把包含cl.exe的文件目录添加到PATH环境变量里,环境变量怎么添加这个就自行百度,具体的我添加的cl.exe的路径是:
C:Program Files (x86)Microsoft Visual Studio2019CommunityVCToolsMSVC14.27.29110binHostx64x64
三、安装显卡驱动
在安装CUDA之前首先更新一下Nvidia驱动,选择对应的显卡就可以了:
笔记本选择带Notebooks的系列,选择最新的显卡驱动,不熟悉的童鞋,全部都勾选安装好就行了:
四、安装CUDA
安装CUDA之前,可以通过英伟达官网给出的支持CUDA的GPU清单检查自检查自己的显卡是否支持CUDA,在CUDA下载页面选择合适的CUDA版本,这里我们选择当下Pytorch支持的最新的CUDA11.0,我选择CUDA Toolkit 11.0 Update1,单机进入,选择操作系统Windows,版本是10,安装类型选exe[local],点击右下角的Download(2.8GB),最后下载下来,也就是cuda_11.0.3_451.82_win10.exe,:
有耐心的童鞋最好安装的时候好好看看CUDA Windows官方安装文档,里面讲的很详细:
下载好了后,直接一路单机默认安装就行了,细心的童鞋可以只选择CUDA组件,但是对于新手来说,还是建议默认都安装。
安装好了CUDA以后,CMD命令行窗口输入以下指令可以检查安装的CUDA版本:
nvcc -V
除此之外,我们还需要通过运行CUDA官方提供的deviceQuery示例程序来检查CUDA是否安装完好,我的CUDA是默认路径安装的,deviceQuery的.sln文件在以下路径:
C:ProgramDataNVIDIA CorporationCUDA Samplesv11.01_UtilitiesdeviceQuery
首先用vs编译deviceQuery文件,因为我的vs是2019版本的,所以我打开的是deviceQuery_vs2019.sln文件:
打开vs以后,编译deviceQuery的release版本:
编译成功了以后,去以下文件夹通过cmd运行deviceQuery.exe:
C:ProgramDataNVIDIA CorporationCUDA Samplesv11.0binwin64Release
最后显示Result = PASS,这个测试就算通过了。
第二个需要测试的是bandwidthTest程序,在以下路径中:
C:ProgramDataNVIDIA CorporationCUDA Samplesv11.01_UtilitiesbandwidthTest
同样按照deviceQuery的步骤编译好.exe文件,在Release文件夹中通过CMD运行bandwidthTest.exe:
同样最后显示Result = PASS,这个测试就算通过了。基本上以上步骤都通过了,CUDA就算安装好了。感兴趣的童鞋还可以尝试其他图形可视化的程序,去release文件夹通过cmd运行试试,还是有点意思的。
五、安装CUDNN
在cudnn下载页面下载不同版本的cudnn,这里需要你注册加入NVIDIA才能下载cudnn。注册好了以后,选择和CUDA11.0匹配的版本cuDNN v8.0.4:
下载完成后,得到一个压缩包文件,将该文件解压到一个地方,这里我之前是装的CUDA10.1版本:
按照cuDNN官方安装教程,解压了cuDNN压缩文件,得到bin,include,lib三个文件夹里的内容,这时候需要把这三个文件夹中的文件复制到安装cuda时所对应的bin,include,lib文件里,记住是复制文件过去,不是复制文件夹过去(installpath就是解压cuDNN压缩包的文件路径):
1、复制 cudabincudnn*.dll 到 C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.0bin.
2、复制 cudaincludecudnn*.h 到 C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.0include.
3、复制 cudalibx64cudnn*.lib 到 C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.0libx64.
全部复制过去了以后,再去环境变量里检查以下变量是否存在:
变量名: CUDA_PATH
变量值: C:Program FilesNVIDIA GPU Computing ToolkitCUDAv11.0
建议一定要参考官方的英文教程,网上百度,csdn的有时候经常漏了哪个步骤,或者画蛇添足一些步骤。
以上就完成了整个CUDA和cuDNN的安装了。
六、Pytorch安装
pytorch的主流安装方式是conda和pip。
conda: 依托强大的Anaconda集成开发环境(IDE),很容易上手使用。
pip: 轻量级,纯净,适合喜欢简约风格的人,不过调试不方便。(这里指的是纯python环境下的pip)
这里我使用Anaconda安装,当然你如果喜欢用其他的IDE(例如eclips、pycharm等)。
在Anaconda官网下载好对应操作系统的Anaconda,当前下载的是Python3.8版本。下载好并安装好了以后,直接打开Anaconda Navigator图形用户界面,可以在里面添加新的环境,并在对应的环境里面安装自己需要的Python包,这里我之前配置的是Pytorch1.6.0的版本,我创建了一个pytorch_160环境:
我们可以通过底栏中间的Create创建新的环境,添加自己需要的环境名,选择自己需要的Python版本。
或者可以通过选择Anaconda Prompt命令行创建环境,在对应环境里面去安装需要的Python版本:
conda create -n pytorch_160 pip python=3.6
这里还是建议图形界面创建环境和安装Python,方便简单直观。如何进入我们创建好的环境中,并安装相应工具包呢?接下来输入一下命令:
conda activate pytorch_160
在对应环境安装包的命令是:
conda install ***
更新包的命令是:
conda update ***
查看当前环境安装的所有包及其型号:
conda list
回车后可以发现命令行最前面括号内的环境名发生了变化,紧接着就是安装我们的pytorch了,去官网找到相应的安装命令,其实在最初就已经告诉我们了:
conda install pytorch torchvision torchaudio cudatoolkit=11.0 -c pytorch
整个过程会自动安装,同时呢,也会出现确认界面,同上输入“y”回车即可。
因为安装包来自互联网,如果遇到下载速度很慢,建议在命令行中直接更换国内源:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
# 设置搜索时显示通道地址
conda config --set show_channel_urls yes
七、验证
为了确保PyTorch是否安装成功,我们需要运行简单的样例代码测试,例如打印出随机生成的张量矩阵,以及gpu是否可以使用。
首先在命令行输入python,进入python的解释器,输入以下命令:
import torch
x = torch.rand(5,3)
print(x)
输出的内容应该类似于以下:
tensor([[0.7088, 0.3325, 0.9702],
[0.8332, 0.1749, 0.2873],
[0.0983, 0.6658, 0.1809],
[0.4608, 0.6184, 0.9358],
[0.1848, 0.7439, 0.4123]])
如果可以,就说明pytorch安装基本成功。
再输入:
torch.cuda.is_available()
如果输出“True”,则说明GPU驱动和CUDA可以支持pytorch的加速计算!
这样整个Pytorch Gpu版本就安装成功了!
同时,这时候可以通过在命令行输入以下命令查看显卡状态和显卡编号:
nvidia-smi
这里我的2080TI编号是0,1080编号是1,上面就实时的显示了显卡的显存使用情况,同时还有nvidia驱动版本,以及cuda版本,不过我这里cuda版本显示有问题,实际不是11.1,我之前是装的10.1,里面只有10.1,最开始装过一次11.1,不过装了就卸了,实际就一个10.1。这个不影响,你可以去你的cuda安装目录看一下有哪几个版本:
八、把配置好的python环境添加到IDE
这里python的IDE有spyder和pycharm,我选择使用的是pycharm,可以去pycharm官网下载与anaconda匹配的社区版。
安装好pycharm以后,把配置的环境加入到pycharm里面去,这里我是把我之前创建的pytorch_160环境添加了进去:
然后就可以在pycharm里面直接跑pytorch代码了。
结束语
最好还是建议童鞋们多看看官网的安装说明及其各种教程和文档,静下心来你就会发现很多细节。
后续如果想学习tensorflow,就不要去网络上找博客了,因为个人总结的信息都存在有过时及定制化的因素,且不负责任,或许我写的内容也可能下周或者不久就过时,也不负任何责任,正确做法建议参照上面一句话。
参考
我若成风:windows10下安装GPU版pytorch简明教程zhuanlan.zhihu.com PyTorchpytorch.org