赞
踩
本节介绍Windows系统下配置一套基于Pytorch框架的极简深度学习开发环境。
目录
其实大概在2016就开始接触深度学习的相关知识,但一直到2018年左右,还停留在门外汉的状态太,原因很简单,感觉学习的门槛过高。
虽然是所学专业算是半个CS,经常使用各种软硬件平台,但遇到深度学习,却觉得困难重重。
先说一下硬件。这里提到的硬件,其实就是带大容量显存,且支持GPU运算的显卡。现在一提到GPU,放在以前玩家的第一反应是玩大型游戏需要,但估计现在大家的第一反应是用来挖矿或者跑深度网络模型采用到。在当年深度学习快速发展的那个年代(其实也没太久远,还不到10年),不用说1080Ti,TITANX了,那是有一张能带6G现存的1060显卡,都当作香饽饽。有5年以上深度学习开发经验的人都知道,这是最丐版的要求了。
再说软件平台。在windows版的TensorFlow和PyTorch推出之前,早期的深度仿真平台只有一个选择:Unbutu,版本是16.04或18.04 LSTC版。对于习惯了在Windows下简单点击几下鼠标,顶多再手动修改一下环境变量,即能分分钟搞定某个开发平台。刚开始接触Ubuntu时的感觉简直无从下手,更不用谈什么设置、程序安装、调试什么的。这还是对于我这类半个CS专业出身的人员而言。相信看到这儿,有不少人感同身受。
最后说框架。如果说硬件的苦难可以通过金钱来解决,软件平台的不习惯可以通过动手熟悉来克服,那么框架所带来的问题直接是无解的。那个年代,计算机视觉领域主流的框架是Caffee,大家可能听说过其他的名称,比如Keras、Theano等等。这些框架都是专业人员开发的,集成度很高,但对非专业人员很不友好。说明文档少、结构复杂、但功能又不够强大。以Caffee为例,它是贾大神读博期间用C语言开发的一个经典的CNN框架,当我听到它是用C语言写的时候,就早早放弃了。不是不会C语言,相反,个人真正系统学习过的编程语言就只有C。但当一定到Caffee是用C开发的时,就放弃了。C语言写的东东,既常长又难。
基于上述三点原因,虽然很早我就攒好了一台深度学习工作站,但一直让它在吃灰。期间处于好奇,让实验室精通此术的学生,花了已整整一天的时间,才完成了配置。但配好之后从来就没自己用过,想想那个陌生的Ubuntu,就想再等等。这一等就是2年。
时间到了2020年,出现了转机。在此就不得不提到本专栏的第一主角:PyTorch。其实从0.4版本开始PyTorch就开启了对Windows的支持,但奈何当时功能还不能与TensorFlow匹敌。更重要的一个原因,相对于其他同等级的框架,PyTorch退出的时间很晚(它最初其实看作是Torch的python重写版本),对经典模型支持的一般,且使用它开行算法设计和开发的工作很少。但酒香不怕巷深,是金子总会发光的。与其他框架相比,PyTorch有着诸多不可替代的优势。随着时间的推移,版本更新越高,功能越来越强大,使用的人越来越多。终于,在2020年发布了2.0版,功能以及易用性大大提高。也就是在那个时间点之前半年,开始接触并使用Python进行CV经典算法的设计与研发。手头上也有一块全新的2080Ti(目前现在写这个专栏正在用主机上配的)。心里仔细盘算,硬件有了,软件系统也换成Windows了,框架也有PyTorch2.0了,还缺啥?没有任何不干的理由了,Go!
在配置之前,需要做好以下准备。下面列出的方案只是我使用的,大家根据自己的事情情况调整即可。
硬件:
注:为什么选用性能更差的HDD作为数据存储盘?这是因为在训练过程中可能会产生大量的数据读写操作,如果直接在SSD上进行写操作,会影响到SSD的寿命(SSD是有读写上限),但HDD不存在这个问题。开始我也没注意到此事,后来实验室新购的一批机器,在半年内SSD(还是三星的)纷纷出现问题,送到售后检测,被告之到了读写上限,才意识到该问题的严重性。特地在此注明,希望引起大家的重视。
软件:
然后呢?然后就没有了,你没看错,既然是极简配置,在不影响基本开发功能的前提下,能不用其他软件就不用。有人说,总要有个代码编辑器吧。有的,我们用Anaconda赠送的,无论是Jupyter Lab/Notebook,还是Spyder,都能完成基本功能。当然,如果您需要搭建更复杂的工程,那么安装一个PyCharm或者VS code还是值得的。
其实Anaconda并不是必须的,但估计99%的开发者都用它,为什么不用呢?
有关Anaconda安装的流程和注意事项,网上有的是资料可查,不再赘述。在此强调两个问题。
一是确认Anaconda中Python的版本,因为扩展库的更新通常赶不上Python的版本迭代,在安装扩展库时需要选择对应的Python版本,总的宗旨是,在能用的前提下,版本越高越好。
如何查Python版本?再简单不过了,打开Anaconda Prompt,键入python,系统即自动显示版本号。
二是完成安装之后,一定记得修改环境变量,将以下四条路径添加到Path路径下:
记得设置完重启或者注销,方可使用。
呼出命令窗口,打开Windows控制台命令窗口,输入nvidia-smi,如果提示无法运行,则说明当前系统还未安装GPU驱动,这样最省事了。如果之前安装了GPU驱动,则可能涉及到版本的冲突,这种情况后面再单独说明。
首先说明,安装CUDA时,会自动安装GPU驱动的。那么问题来了,选用什么版本的CUDA呢?这个主要取决于两个因素。一是GPU本身,不同的GPU能够适应的CUDA各不相同。一般来说,GPU越新,支持的CUDA版本越高。但安装最新版本的CUDA并不一定合适。这就引出了第二个因素,即我们选用的深度学习框架所能支持的CUDA版本。以Pytorch为例,可以在其官网上查询到不同版本Pytorch版本所支持的CUDA版本。
进入Pytorch官网,选择最新的版本,查询其对应的CUDA版本。以下图为例:
可见,该版本(2.2.1)的Pytorch支持11.8和12.1版本的CUDA。在此选择12.1版本的CUDA。
进入官网CUDA下载,选择并合适版本的CUDA,其宗旨是:版本号小于等于上述最高版本的即可。比如,我们就选择12.1.0版的CUDA,点击进去,依次做出选择。然后下载相关的本地exe文件。另外,建议从官网下载安装文件,不要用某某云盘的。
在开始安装之前,再次说明,如果之前安装过显卡驱动,无论版本如何,都先卸载,这样最省事。
点击之前下载的本机exe安装文件,开始安装。其实过程很简单,只需要注意一处就行。
首先,选择“自定义”。
然后取消下面安装图中的“Visual Studio Integration”一项,不要问我为什么,我也不清楚,但如果选上它,则在安装过程中会报错,无法正常安装。
剩下就没什么了,其他都默认安装即可。在安装过程中,会有黑屏,这是在安装GPU驱动。另外,还需要说明的是,尽量采用默认安装路径,即便想改变,也尽量安装在C盘上。
安装完成后,还需要查询一下是否修改了环境变量,如下所示。如果没有自动添加,还需要手动添加,大家可自行查询如何操作。
然后,呼出命令窗口,键入命令:nvcc -V,如果有信息输入,则说明安装成功。
OK,到此为止CUDA安装完毕。
与CUDA相比,cudnn的安装要容易的多,点击cudnn官网链接,然后根据个人主机的配置,下载对应的安装文件,如下图所示:
接下来,点击安装即可。不需要注意任何地方,简单至极。
安装Pytorch的方法也不难,在此推荐pip安装,但不推荐在线安装,因为安装文件较大。
先点击官网提供的pytorch下载链接,直接下载whl文件,并将其存放在指定的路径下:anacongda安装路径/Lib/site-packages/,该路径用于存放第三方库。
然后,在Anaconda的命令窗口中,将当前路径调整到前面提到的路径下,键入以下命令:
pip3 install torch torchvision torchaudio torch-2.2.1+cu121-cp311-cp311-win_amd64.whl
如上图所示的安装结果。如何验证是否成功安装了pytorch呢?打开Anaconda自带的命令行窗口,启动python,然后键入以下命令:
import torch
print(torch.cuda.is_available())
如下图提示,返回值为True,则说明安装成功。
OpenCV对于Pytorch不是必须的,但个别函数调用了OpenCV的内部函数,并且也可以使用OpenCV函数完成一些基本的图像处理操作,因此,强烈建议各位安装该扩展库。
安装OpenCV的流程与Pytorch类似。仍然推荐先根据Anaconda自带的Python版本,搜索并下载合适版本的Opencv安装文件。
建议各位直接去Opencv-python官网下载相关文件,强烈不建议去第三方网站下载,否则很可能出现版本不匹配的情况,而导致无法正常运行。另外,OpenCV的Python版本更新速度低于Python的版本更新,因此只要保证OpenCV-Python支持的python版本不高于本机的Python版本,即可使用。
将下载的whl文件存放到特定的路径下,然后在命令行窗口中用以下pip语句进行安装(对应Python3.7版)。
pip3 install opencv_python-4.9.0.80-cp37-abi3-win_amd64.whl
在此需要注意一点,个别涉及到专利权的OpenCV函数并没有被打包在OpenCV安装包中,而是被打包在opencv-contrib-python扩展包中,各位可根据需要,自行决定是否安装。
安装完毕后,进入Python环境,然后键入:import cv2,如果不报错,即说明安装成功。如下图所示:
到此为止,我们需要的极简开发环境搭建完成,下一节用典型而简单的实例来验证该环境是否真的能work。
(本节初稿完成时间:2024-03-25)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。