当前位置: 首页 > news >正文

001-Windows下PyTorch极简开发环境配置(上)

本节介绍Windows系统下配置一套基于Pytorch框架的极简深度学习开发环境。

目录

0.1 缘起

0.1 缘起

其实大概在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!

0.2 准备

在配置之前,需要做好以下准备。下面列出的方案只是我使用的,大家根据自己的事情情况调整即可。

硬件:

  • CPU:最好是10代以上的i5或i7。
  • 内存:32G起,有条件的上64G,再大意义不大。
  • 主板:大厂的大版,供电好、扩展性好,比如华硕、微星等。
  • GPU:这是主角,建议1080起,能用4090当然更好。如果能用A100,土豪,请受我一拜。
  • 硬盘:其实很多人忽略了硬盘的重要性,系统盘尽量使用512G以上的M2 SSD,速度快;数据盘可考虑使用HDD,容量4T起(很便宜,但要注意选CMR的),用于大量的数据读写操作。
  • 电源:这是另外一个容易被忽略的配件,其功率一定足够大。可以跟一个参考选项,即你所使用GPU最大功耗+500W,就是建议选用的主机电源功率值。比如,我使用的2080Ti最大功率约250W,则可考虑标称值为750W及以上的电源,最好选大品牌的。

注:为什么选用性能更差的HDD作为数据存储盘?这是因为在训练过程中可能会产生大量的数据读写操作,如果直接在SSD上进行写操作,会影响到SSD的寿命(SSD是有读写上限),但HDD不存在这个问题。开始我也没注意到此事,后来实验室新购的一批机器,在半年内SSD(还是三星的)纷纷出现问题,送到售后检测,被告之到了读写上限,才意识到该问题的严重性。特地在此注明,希望引起大家的重视。

软件

  • Windows10 :建议安装2021年十月份发布的LSTC版(64位),稳定,简约,既能得到长期的更新(据说是六年,到),又不会安装一些用不到的功能。Why not?
  • Anaconda:用过的都知道,Python的最佳基友,方便强大还免费,还有赠品。Why not?
  • 其他:一些必要的Python扩展库,如OpenCV、Pytorch;CUDA相关的套件。

然后呢?然后就没有了,你没看错,既然是极简配置,在不影响基本开发功能的前提下,能不用其他软件就不用。有人说,总要有个代码编辑器吧。有的,我们用Anaconda赠送的,无论是Jupyter Lab/Notebook,还是Spyder,都能完成基本功能。当然,如果您需要搭建更复杂的工程,那么安装一个PyCharm或者VS code还是值得的。

1.1 开始

经过前期的准备工作,默认已经安装好了Windows系统和Anaconda。

有关Anaconda安装的流程和注意事项,网上有的是资料可查,不再赘述。在此强调两个问题。

一是确认Anaconda中Python的版本,因为扩展库的更新通常赶不上Python的版本迭代,在安装扩展库时需要选择对应的Python版本,总的宗旨是,在能用的前提下,版本越高越好。

如何查Python版本?再简单不过了,打开Anaconda Prompt,键入python,系统即自动显示版本号。

二是完成安装之后,一定记得修改环境变量,将以下四条路径添加到Path路径下:

  • 安装路径\anaconda3
  • 安装路径\anaconda3\Scripts\
  • 安装路径\anaconda3\Library\bin
  • 安装路径\anaconda3\Library\mingw-w64\bin

(未完待续)

http://www.lryc.cn/news/323667.html

相关文章:

  • 分布式Raft原理详解,从不同角色视角分析相关状态
  • 大数据的实时计算和离线计算你理解吗?
  • OS Package Manager
  • 【滑动窗口、矩阵】算法例题
  • 【事务】开发用到的事务,TransactionDefinition实例详解,事务的传播机制
  • Linux信号处理
  • nuclei使用方法
  • 【并查集专题】【蓝桥杯备考训练】:网络分析、奶酪、合并集合、连通块中点的数量、格子游戏【已更新完成】
  • 数据结构(三)复杂度的深层次剖析
  • JavaWeb -- HTTP -- WEB服务器TOMCAT
  • GitHub与Git命令使用笔记
  • 二叉树的层次遍历经典问题-算法通关村
  • SQLiteC/C++接口详细介绍sqlite3_stmt类(十二)
  • 大模型时代如何做安全?
  • 新型储能是什么,储能系统解决方案现状及趋势详细说明
  • 掌握Go语言:Go语言中的字典魔法,高效数据检索与应用实例解析(18)
  • Flutter-仿携程首页类型切换
  • C语言 自定义类型:结构体
  • 计算机网络拓扑结构
  • FPGA通过I2C控制AT24C64
  • 134. 加油站(力扣LeetCode)
  • XSKY 智能存储,助力“数据要素 X”先进制造
  • 数据挖掘与分析学习笔记
  • linux docker镜像初始化
  • 专业140+总分410+南京大学851信号与系统考研经验南大电子信息与通信集成,电通,真题,大纲,参考书。
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • 【React 】React 性能优化的手段有哪些?
  • 3.22网络编程小项目
  • Git原理及使用
  • Milvus 向量数据库介绍及使用