P3 配置PyTorch深度学习环境_哔哩哔哩_bilibili
00:00,本次内容大纲
00:25 ,上次内容回顾
18:00 ,课后题目讲解,要改r字符串
24:00 ,【环境安装配置】conda,pycharm
29:18 ,gpu,gpustat
32:35 ,linux,screen后台运行
附:文中部分链接为放在贴图库网站的图片展示,因近期贴图库网站被监管,链接暂时失效。
1 Python开发环境
1.1 Anaconda
下载安装
- 为了避免不同的项目开发,需要不同的python、包版本从而产生的冲突,我们常用Anaconda来进行环境管理。
- 【下载】官网 Anaconda | Individual Edition或清华镜像,找windows或linux对应的安装包:

都下载下来:Anaconda3-2020.02-Windows-x86_64.exe,Anaconda3-2020.02-Linux-x86_64.sh
- 【windows版安装】请使用管理员权限,其他设置随意没有太大影响。
- 【linux版安装】Anaconda3-2020.02-Linux-x86_64.sh:
注意linux初次安装后,需要更新环境变量才能加载出anaconda(退出重新进入命令行有时候也行):bash Anaconda3-2020.02-Linux-x86_64.sh
source .bashrc
使用简介
- 参考资料:初学 Python 者自学 Anaconda 的正确姿势是什么? - 知乎
如果计算机上已经安装了 Python,安装Anaconda也不会对你有任何影响。实际上,脚本和程序使用的默认 Python 是 Anaconda 附带的 Python,所以安装完Anaconda已经自带安装好了Python,不需要你再安装Python了。 - anaconda可以建立很多个虚拟环境,可以把每个虚拟环境理解成操作系统原始环境的继承,有共同的全局变量等配置,但是每个环境有自己的python版本(anaconda中一切皆包,py也可以理解成一个包)、包版本。
- 使用”conda info -e”可以查看目前系统中已有的虚拟环境:

- 其中base是安装后默认自带的一个虚拟环境。
- 使用”conda activate base”就可以进入指定的虚拟环境
- 然后使用conda安装包等命令功能,都是在该特定环境下运行的。进入特定环境后,在命令行前面会有环境名标识,例如上图是linux中效果。在cmder中则为:

- 退出虚拟环境可以使用”conda deactivate”:

- 总结,以及增删环境命令: ```shell conda env list # 查看已有哪些环境,同 conda info -e,写法不唯一
conda activate base # 进入base环境 conda deactivate # 退出当前环境
conda create -n py38 python=3.8 # 新建一个叫py38的虚拟环境,使用py3.8版本 conda env remove -n py38 # 删除py38
1. 我个人为了方便,平时最常用,最完整的配置都放在base,然后其他明确有特定配置需求,或者需要打包发布exe为了避免依赖过于冗余等问题,例如labelme的开发环境等,再额外增补环境。1. 对于常要部署项目的,裕沛不建议大家在base安装东西,可能会对其他虚拟环境产生干扰。5. 必须新建一个虚拟环境,或者进入base也行,后续pytorch必须在conda虚拟环境下安装。<a name="h1Q7c"></a>## 1.2 PyCharm<a name="kjrwx"></a>### 安装社区版或专业版官网:[PyCharm: the Python IDE for Professional Developers by JetBrains](https://www.jetbrains.com/pycharm/)<br />使用免费的社区版能满足大部分开发需求了。专业版主要有1. 远程运行功能。1. Profile性能分析工具,可以用来很好地分析代码运行速度瓶颈在哪,重点改进。1. 使用pycharm风格的jupyter功能(不好用,不推荐)如果对以上功能有需求,或者不闲麻烦的话,可以尝试安装专业版。<br />[使用专业版的五种方法](https://pycharm.iswbm.com/c01/c01_03.html):可以用学生账号申请,或者用自己的开源项目申请。<a name="TLwq3"></a>### 使用指南推荐大家通读一遍该手册:详细介绍了很多有用的pycharm技巧<br />[PyCharm 中文指南 — PyCharm 中文指南(Win版) 2.0 documentation](https://pycharm.iswbm.com/)<a name="BtIRx"></a>### 远程运行windows、pycharm用户的福利,linux小白的救星运行、调试远程服务器的项目代码,本文改编自《PyCharm中文指南》:<br />[pycharm远程同步linux以及团队协作 · 语雀](https://www.yuque.com/xlpr/doai/ctd2v5)如果使用远程运行时,断点调试看不到变量,或加载特别慢,可以尝试**切换**下Gevent compatible的设置。<br /><a name="AQ0FB"></a>## 1.3 Jupyter Notebook<a name="fD7PY"></a>### 简介如果把在控制台交互式写代码比作是“手机”:<br /><br />把在PyCharm等IDE上写代码比作是“电脑”,<br />那么介于“手机”和“电脑”之间,还有一个生产力工具:“平板”。<br />python中的“平板”,就是:Jupyter。---Jupyter具备一定的IDE开发功能,可以写代码块。<br />并且也能像控制台一样,非常方便地进行交互测试,在数据清理和转换,机器学习有着广泛的应用。又因为其可以嵌入Markdown等解释描述文本,所以很多入门教程都会做成jupyter的文件形式,提供给大家测试。<br />Jupyter Notebook的代码文件后缀为:.ipynb。---安装Anaconda3后,就自带了 Jupyter Notebook(这里打开的工作环境默认在“用户目录”):<br /><br />也可以在命令行中打开:jupyter notebook。(命令行打开工作环境默认为当前“工作目录”)---补充资料:[关于Jupyter中代码运行顺序 · 语雀](https://www.yuque.com/code4101/python/kuu56e)<a name="JYMML"></a>### 在线Jupyter/CoLab[在线的 Jupyter Notebook 云环境推荐](https://sspai.com/post/55402)也可以直接用一些在线的Jupyter做些实验,有时候看文档也会跳到CoLab等在线jupyter。<br />这些在线平台的好处是免去我们自己配置环境的过程,可以用云计算资源。这里个人比较熟悉和推荐的就是[CoLab](https://research.google.com/colaboratory/)(外网连不上找我),有免费的GPU算力资源提供。<a name="dJ21k"></a>### JupyterLab这是Jupyter官方新推出的,比jupyter notebook更好用的平台环境:<br />[Project Jupyter | Installing the Jupyter Software](https://jupyter.org/install.html)能用JupyterLab的情况下推荐大家优先使用JupyterLab。<a name="jKD1c"></a># 2 PyTorch深度学习环境<a name="QfLbG"></a>## 2.1 GPU参考资料:[显卡和显卡驱动、gpu、cuda和cudnn.pdf](https://www.yuque.com/attachments/yuque/0/2022/pdf/209178/1649121525100-220672a4-8bb0-4dde-8207-f3c0bc9e4b7a.pdf?_lake_card=%7B%22src%22%3A%22https%3A%2F%2Fwww.yuque.com%2Fattachments%2Fyuque%2F0%2F2022%2Fpdf%2F209178%2F1649121525100-220672a4-8bb0-4dde-8207-f3c0bc9e4b7a.pdf%22%2C%22name%22%3A%22%E6%98%BE%E5%8D%A1%E5%92%8C%E6%98%BE%E5%8D%A1%E9%A9%B1%E5%8A%A8%E3%80%81gpu%E3%80%81cuda%E5%92%8Ccudnn.pdf%22%2C%22size%22%3A985189%2C%22type%22%3A%22application%2Fpdf%22%2C%22ext%22%3A%22pdf%22%2C%22source%22%3A%22%22%2C%22status%22%3A%22done%22%2C%22mode%22%3A%22title%22%2C%22download%22%3Atrue%2C%22taskId%22%3A%22ue9f69f4f-2c7b-4575-8cbc-74d7e940167%22%2C%22taskType%22%3A%22upload%22%2C%22id%22%3A%22u7b414f76%22%2C%22card%22%3A%22file%22%7D)<a name="Sp69C"></a>### GPU显卡是什么东西个人电脑请优先确认本机是否有英伟达的gpu显卡(不会查的请百度)1. 一般小白不知道自己有没有的,那大概率就是没有,后面pytorch安装cpu版即可,不需要管nvidia-smi和cuda这些东西。平时做小实验用cpu足够了,以后正式的实验,数据体量、模型都特别庞大,那时候就必须要用服务器的gpu,速度可能会差百倍。1. 科普1. gpu跟cpu差不多,不过cpu什么都能做,gpu只擅长做并行类的、矩阵运算。gpu并不是每台电脑一定有的,只是有些男生喜欢打游戏,都是大量的图形并行运算,就会买好的显卡,或者说gpu。1. 显卡也有很多厂商,深度学习一般都用英伟达的,不过英伟达也不是自己做的,而是分发给技嘉、华硕等一些制造商生产的。1. 英伟达gpu的编程接口,是cuda写的,cuda是一种“运算平台”,也可以简单理解成给硬件封装的一个软件功能调用接口,有版本区别。pytorch就需要指定cuda的版本,否则python这里调用cuda可能代码版本不兼容。<a name="qqKVt"></a>### nvidia-smi/gpustat可以使用nvidia-smi命令确认下显卡状态,右边备注顺便介绍了下我们团队显卡的使用规范。示例图,请把全部备注都读一遍!<br />windows上命令无法使用的话,需在环境变量path中添加:C:\Program Files\NVIDIA Corporation\NVSM---平时查gpu使用,推荐:[gpustat · PyPI](https://pypi.org/project/gpustat/),比nvidia-smi简洁直观。<br /><br />实时监控要加-i参数:gpustat -i<a name="Xi9R1"></a>### CUDA_VISIBLE_DEVICES以后运行py等程序项目时1. 可以指定可见的显卡编号:CUDA_VISIBLE_DEVICES=3,4,5(这句话要放在命令最前面)。此时py代码里指定的0卡,实际是外部的第3卡,1. [示例:用第8卡执行程序](http://i1.fuimg.com/582188/a545f640ba500724.png)<br />CUDA_VISIBLE_DEVICES=8 python cnn.py---该命令的运作原理,本质是linux的命令语法机制。1. 命令行开头的变量赋值,会添加到临时环境变量中1. 在py里可以使用os.getenv('CUDA_VISIBLE_DEVICES')获取环境变量值1. pytorch就是在运行前,尝试读取CUDA_VISIBLE_DEVICES,并重置可用GPU的相对编号位置<a name="5Cfkd"></a>## 2.2 pytorch确认显卡正常后,可以安装PyTorch。1. 去PyTorch官网 [Start Locally | PyTorch](https://pytorch.org/get-started/locally/),[选择对应版本](http://i2.tiimg.com/582188/175e453c5617f546.png),确认安装所需使用的命令1. 这里cudatoolkit版本不太对应,似乎也没关系的1. 代码:conda install pytorch torchvision cudatoolkit=10.2 -c pytorch2. 下载太慢的话1. 可以先配置清华源:[anaconda | 镜像站使用帮助 | 清华大学开源软件镜像站](https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/)。1. 但清华源有时候也不稳定,在有相应配置下,推荐优先试用proxychains,翻墙下载:<br />proxychains conda install pytorch torchvision cudatoolkit=10.2 -c pytorch3. 最后可以确认下安装是否成功:```pythonimport torchprint(torch.cuda.is_available()) # 返回True则表示安装成功可以正常调用GPU
后记,初步实验,好像用:pip install torch torchvision安装也是可以的,大家可以试试,都没出错的话以后推荐这个安装方式。
3 linux服务器
3.1 命令行/环境变量/工作目录
使用linux,就好比在windows使用命令行。
经常看到的这些名词:命令行、环境变量、工作目录、相对路径、绝对路径、命令参数,都是很基础的概念,
如果有同学对这些概念还不是很清楚,建议看下这篇扩展资料:cmd介绍_代号4101的专栏-CSDN博客。
在windows命令行使用比较多的,推荐一个软件cmder · 语雀,
其在windows仿制了linux的一些常用基本命令,以及内置了git。
3.2 MobaXterm
为了在windows连接使用linux服务器的资源,需要一个工具软件:
MobaXterm free Xserver and tabbed SSH client for Windows,
找我或团队相关负责人,开通账号,会给到服务器ip地址(+端口,默认是22),你的账号名和初始密码,建立对应的session:
首次连接,要输入密码。输完密码,mobaxterm会提示是否要自动保存,建议自动保存,每次登陆比较便捷。
由于目前服务器在局域网中,公网访问不到,推荐“向日葵”软件,可以家里的电脑远程控制学校的电脑,再通过MobaXterm连服务器。。。(公网也有穿刺,在家需要用服务器的也可以找我配置穿刺的host和port)
3.3 命令基础
linux速查备忘手册
linux常用的功能命令,参考:linux速查备忘手册 · 语雀
在服务器给新人添加账户的流程
有些研究生可能会参与服务器的管理,给人创建账号,参考操作方式如下:
- 新建用户:useradd -d /home/ckz -s /bin/bash -m ckz (黄色:该用户目录,红色:用户名 -d:指定工作目录 -s 添加权限 -m:自动建立用户的登入目录(注意为小写m)-m不需要参数 )
- 设置密码:passwd ckz —> 123456 (建议使用密码生成器-生成随机密码)
- [可选]sudo权限:usermod -aG sudo ckz
- 注意ckz使用sudo命令时,要输入自己(ckz)的账号密码确认
- 删除用户:userdel -r ckz
3.4 补充重要技巧
ipdb/断点调试
如果没有使用PyCharm配置远程运行python,
此时在linux调试、打断点,可以使用该工具:ipdb · PyPI。
screen/tmux
挂载后台运行:screen · 语雀,防止断网、方便挂机,方便挂多个实验。
类似的工具还有tmux,大家只要会用一种就行。
vim
由于我们平时运行环境主要都在服务器上,就算有pycharm远程,也避免不了需要直接在服务器编辑文件内容的时候。
在服务器一般用vim编辑文件,非linux骨灰级用户,只需要掌握核心的一些vim操作功能即可:
Learn X in Y Minutes: Scenic Programming Language Tours。
致谢
颜裕沛指导了anaconda、pytorch基本安装过程,显卡使用规范,linux创建账号。
裕沛也写过一套基础的入门教程大纲,有兴趣的可以参考:
团队入门知识体系(待完善逻辑关系) · 语雀。
吴岳峰推荐的《Python中文指南》。
翁康明完善的pycharm远程运行详细配置文档。
翁远钰推荐的《Linux速查备忘手册》。
