YK人工智能(二)——万字长文了解深度学习环境配置
1.1 PyTorch简介
PyTorch是由Meta AI(Facebook)人工智能研究小组开发的一种基于Lua编写的Torch库的Python实现的深度学习库,目前被广泛应用于学术界和工业界,相较于Tensorflow2.x,PyTorch在API的设计上更加简洁、优雅和易懂。
1.1.1 PyTorch的发展
“All in PyTorch”,对于PyTorch的发展我们只能用一句话来概况了,PyTorch自从推出就获得巨大的关注并受到了很多人的喜欢,而最直观的莫过于下面数据所表现的简明直了。
下图来自Paper with code网站,颜色面积代表使用该框架的论文公开代码库的数量,我们可以发现截至2024年9月30日,PyTorch的代码实现已经是TensorFlow实现的10倍,我们也可以看红色部分的PyTorch正在取代他的老大哥称霸学术圈,PyTorch会借助ONNX所带来的落地能力在工业界逐渐走向主导地位。
总的来说,我们必须承认到现在为止PyTorch 1.x还是有不如别的框架的地方,但是我们相信PyTorch 2.x版本会给我们带来更大的惊喜。
1.1.2 PyTorch的优势
- 更加简洁,相比于其他的框架,PyTorch的框架更加简洁,易于理解。PyTorch的设计追求最少的封装,避免重复造轮子。
- 上手快,掌握numpy和基本的深度学习知识就可以上手。
- PyTorch有着良好的文档和社区支持,作者亲自维护的论坛供用户交流和求教问题。Meta AI(Facebook AI)对PyTorch提供了强力支持,作为当今排名前三的深度学习研究机构,MAIR的支持足以确保PyTorch获得持续的开发更新。
- 项目开源,在Github上有越来越多的开源代码是使用PyTorch进行开发。
- 可以更好的调试代码,PyTorch可以让我们逐行执行我们的脚本。这就像调试NumPy一样 – 我们可以轻松访问代码中的所有对象,并且可以使用打印语句(或其他标准的Python调试)来查看方法失败的位置。
- 越来越完善的扩展库,活力旺盛,正处在当打之年。
1.2 PyTorch的安装
PyTorch的安装是我们学习PyTorch的第一步,也是经常出错的一步。在安装PyTorch时,我们通常使用的是Anaconda/miniconda+Pytorch+ IDE 的流程。
经过本节的学习,你将收获:
- Anaconda/miniconda的安装及其常见命令
- PyTorch的安装流程
- 如何选择一个适合自己的PyTorch版本
1.2.1 Anaconda的安装
在数据科学和最近很火的深度学习中,要用到大量成熟的package。我们一个个安装 package 很麻烦,而且很容易出现包之间的依赖不适配的问题。而 Anaconda/miniconda的出现很好的解决了我们的问题,它集成了常用于科学分析(机器学习, 深度学习)的大量package,并且借助于conda我们可以实现对虚拟Python环境的管理。
Step 1:安装Anaconda/miniconda
登陆Anaconda | Individual Edition,选择相应系统DownLoad,此处以Windows为例(Linux可以点击链接选择合适的版本进行下载或者通过官方提供的shell脚本进行下载):
Step 2:检验是否安装成功
在开始页找到Anaconda Prompt,一般在Anaconda3的文件夹下,( Linux在终端下就行了)
Step 3:创建虚拟环境
Linux在终端(Ctrl
+Alt
+T
)进行,Windows在Anaconda Prompt
进行
查看现存虚拟环境
查看已经安装好的虚拟环境,可以看到我们这里已经有两个环境存在了
conda env list
创建虚拟环境
在深度学习和机器学习中,我们经常会创建不同版本的虚拟环境来满足我们的一些需求。下面我们介绍创建虚拟环境的命令。
conda create -n env_name python==version
# 注:将env_name 替换成你的环境的名称,version替换成对应的版本号,eg:3.8
例如:
conda create -n yolo python==3.9
注:
- 这里忽略我们的warning,因为我们测试的时候已经安了又卸载一遍了,正常时是不会有warning的。
- 在选择Python版本时,不要选择太高,建议选择3.6-3.8,版本过高会导致相关库不适配。
安装包
conda install package_name
# 注:package_name 替换成对应的包的名称,eg: pandas
卸载包
conda remove package_name
# 注:package_name 替换成对应的包的名称,eg: pandas
显示所有安装的包
conda list
删除虚拟环境命令
conda remove -n env_name --all
# 注:env_name 替换成对应的环境的名称
激活环境命令
conda activate env_name
# 注:env_name 替换成对应的环境的名称
退出当前环境
conda deactivate
关于更多的命令,我们可以查看Anaconda/miniconda官方提供的命令,官网链接:点击这里
Step 4:换源
在安装package时,我们经常会使用pip install package_name
和conda install package_name
的命令,但是一些package下载速度会很慢,因此我们需要进行换源,换成国内源,加快我们的下载速度。以下便是两种对应方式的永久换源。如果我们仅仅想为单次下载换源可以使用pip install package_name -i https://pypi.tuna.tsinghua.edu.cn/simple
进行下载。
pip换源
Linux:
Linux下的换源,我们首先需要在用户目录下新建文件夹.pip
,并且在文件夹内新建文件pip.conf
,具体命令如下
cd ~
mkdir .pip/
vi pip.conf
随后,我们需要在pip.conf
添加下方的内容:
[global]
index-url = http://pypi.douban.com/simple
[install]
use-mirrors =true
mirrors =http://pypi.douban.com/simple/
trusted-host =pypi.douban.com
Windows:
1、文件管理器文件路径地址栏敲:%APPDATA%
回车,快速进入 C:\Users\电脑用户\AppData\Roaming
文件夹中
2、新建 pip 文件夹并在文件夹中新建 pip.ini
配置文件
3、我们需要在pip.ini
配置文件内容,我们可以选择使用记事本打开,输入以下内容,并按下ctrl+s保存,在这里我们使用的是豆瓣源为例子。
[global]
index-url = http://pypi.douban.com/simple
[install]
use-mirrors =true
mirrors =http://pypi.douban.com/simple/
trusted-host =pypi.douban.com
conda换源(清华源)官方换源帮助
Windows系统:
TUNA 提供了 Anaconda 仓库与第三方源的镜像,各系统都可以通过修改用户目录下的 .condarc
文件。Windows 用户无法直接创建名为 .condarc
的文件,可先执行conda config --set show_channel_urls yes
生成该文件之后再修改。
完成这一步后,我们需要修改C:\Users\User_name\.condarc
这个文件,打开后将文件里原始内容删除,将下面的内容复制进去并保存。
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
这一步完成后,我们需要打开Anaconda Prompt
运行 conda clean -i
清除索引缓存,保证用的是镜像站提供的索引。
Linux系统:
在Linux系统下,我们还是需要修改.condarc
来进行换源
cd ~
vi .condarc
在vim
下,我们需要输入i
进入编辑模式,将上方内容粘贴进去,按ESC
退出编辑模式,输入:wq
保存并退出
我们可以通过conda config --show default_channels
检查下是否换源成功,如果出现下图内容,即代表我们换源成功。
同时,我们仍然需要conda clean -i
清除索引缓存,保证用的是镜像站提供的索引。
1.2.2 查看显卡
该部分如果仅仅只有CPU或者集显的小伙伴们可以跳过该部分
windows:
我们可以通过在cmd/terminal中
输入nvidia-smi
(Linux和Win命令一样)、使用NVIDIA控制面板和使用任务管理器查看自己是否有NVIDIA的独立显卡及其型号
linux:
我们需要看下版本号,看自己可以兼容的CUDA版本,等会安装PyTorch时是可以向下兼容的。具体适配表如下图所示。
1.2.3 安装PyTorch
Step 1:登录PyTorch官网
Step 2:Install
这个界面我们可以选择本地开始(Start Locally),云开发(Cloud Partners),以前的Pytorch版本(Previous PyTorch Versions),移动端开发(Mobile),在此处我们需要进行本地安装。
Step 3:选择命令
我们需要结合自己情况选择命令并复制下来,然后使用conda下载或者pip下载(建议conda安装)
打开Terminal
,输入conda activate env_name
(env_name 为你对应的环境名称),切换到对应的环境下面,我们就可以进行PyTorch的安装了。
注:
-
Stable代表的是稳定版本,Preview代表的是先行版本
-
可以结合电脑是否有显卡,选择CPU版本还是CUDA版本,CUDA版本需要拥有独显且是NVIDIA的GPU
-
官方建议我们使用Anaconda/miniconda来进行管理
-
关于安装的系统要求
- Windows:
- Windows 7及更高版本;建议使用Windows 10或者更高的版本
- Windows Server 2008 r2 及更高版本
- Linux:以常见的CentOS和Ubuntu为例
- CentOS, 最低版本7.3-1611
- Ubuntu, 最低版本 13.04,这里会导致cuda安装的最大版本不同
- macOS:
- macOS 10.10及其以上
- Windows:
-
有些电脑所支持的cuda版本<10.2,此时我们需要进行手动降级,即就是cudatoolkit = 你所适合的版本,但是这里需要注意下一定要保持PyTorch和cudatoolkit的版本适配。查看Previous PyTorch Versions | PyTorch
Step 4:在线下载
如果我们使用的Anaconda Prompt
进行下载的话,我们需要先通过conda activate env_name
,激活我们的虚拟环境中去,再输入命令。
注: 我们需要要把下载指令后面的 -c pytorch 去掉以保证使用清华源下载,否则还是默认从官网下载。
Step 5:离线下载
Windows:
在安装的过程中,我们可能会出现一些奇奇怪怪的问题,导致在线下载不成功,我们也可以使用离线下载的方法进行。
下载地址:https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
通过上面下载地址,我们需要下载好对应版本的pytorch和 torchvision 包,然后打开Anaconda Prompt
/Terminal
中,进入我们安装的路径下。
cd package_location
conda activate env_name
接下来输入以下命令安装两个包
conda install --offline pytorch压缩包的全称(后缀都不能忘记)
conda install --offline torchvision压缩包的全称(后缀都不能忘记)
Step 6:检验是否安装成功
进入所在的虚拟环境,紧接着输入python
,在输入下面的代码。
import torch
torch.cuda.is_available()
False
这条命令意思是检验是否可以调用cuda,如果我们安装的是CPU版本的话会返回False,能够调用GPU的会返回True。一般这个命令不报错的话就证明安装成功。
- Windows系统
- Linux系统
PyTorch的安装绝对是一个容易上火的过程,而且网络上的教程很可能对应早期的版本,或是会出现一些奇奇怪怪的问题,但是别担心,多装几次多遇到点奇奇怪怪的问题就好了!
1.2.4 PyCharm安装(可选操作)
VSCode这些也是ok的,安装PyCharm非必须操作
Linux,Windows此处操作相同,我们建议Windows的同学安装Pycharm即可,因为在Linux上pycharm并不是主流的IDE。
Step 1:进入官网下载
如果是学生的话可以使用学生邮箱注册并下载Professional版本,Community版本也基本能满足我们的日常需求。
Step 2:配置环境
我们需要将虚拟环境设为我们的编译器,具体操作:File --> Settings --> Project:你的项目名称–> Python Interpreter
进去后,我们可以看见他使用的是默认的base环境,现在我们需要将这个环境设置成我们的test
环境,点击齿轮
,选择Add
点击Conda Environment
,选择Existing environment
,将Interpreter
设置为test环境下的python.exe
注:如果在pycharm的环境时,想进入我们的虚拟环境,要使用conda activate 名称
1.3 PyTorch相关资源
PyTorch之所以被越来越多的人使用,不仅在于其完备的教程,还受益于许多相关的资源和完善的论坛。
经过本节的学习,你将收获:
- PyTorch的优质学习资源
1.3.1 PyTorch学习资源
- Awesome-pytorch-list:目前已获12K Star,包含了NLP,CV,常见库,论文实现以及Pytorch的其他项目。
- PyTorch官方文档:官方发布的文档,十分丰富。
- Pytorch-handbook:GitHub上已经收获14.8K,pytorch手中书。
- PyTorch官方社区:PyTorch拥有一个活跃的社区,在这里你可以和开发pytorch的人们进行交流。
- PyTorch官方tutorials:官方编写的tutorials,可以结合colab边动手边学习
- 动手学深度学习:动手学深度学习是由李沐老师主讲的一门深度学习入门课,拥有成熟的书籍资源和课程资源,在B站,Youtube均有回放。
- Awesome-PyTorch-Chinese:常见的中文优质PyTorch资源
- labml.ai Deep Learning Paper Implementations:手把手实现经典网络代码
- YSDA course in Natural Language Processing:YSDA course in Natural Language Processing
- huggingface:hugging face
- ModelScope: 魔搭社区
当然可以!以下是一些学习 PyTorch 的资源,包括官方文档、在线课程、书籍和社区资源,适合不同水平的学习者。
官方文档
-
PyTorch 官方文档:
- PyTorch Documentation
- 包含了 PyTorch 的所有功能、API 参考和使用示例。
-
PyTorch Tutorials:
- PyTorch Tutorials
- 提供了从基础到高级的各种教程,涵盖了深度学习的多个方面。
在线课程
-
Coursera:
- Deep Learning Specialization by Andrew Ng
- 虽然主要使用 TensorFlow,但可以帮助理解深度学习的基本概念,适合与 PyTorch 一起学习。
-
Udacity:
- Intro to Deep Learning with PyTorch
- 这是一个免费的课程,专注于使用 PyTorch 进行深度学习。
-
Fast.ai:
- Practical Deep Learning for Coders
- 这个课程使用 Fastai 库(基于 PyTorch)来教授深度学习,适合初学者。
-
edX:
- Deep Learning with PyTorch
- 由 Facebook AI 提供的课程,专注于使用 PyTorch 进行深度学习。
书籍
-
《Deep Learning with PyTorch》:
- 作者:Eli Stevens, Luca Antiga, and Thomas Viehmann
- 这本书提供了 PyTorch 的深入介绍,适合初学者和有经验的开发者。
-
《Programming PyTorch for Deep Learning》:
- 作者:Ian Pointer
- 这本书通过实际示例介绍了如何使用 PyTorch 进行深度学习。
-
《Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow》(第2版):
- 作者:Aurélien Géron
- 尽管主要使用 TensorFlow,但书中也有关于 PyTorch 的部分,适合全面了解机器学习和深度学习。
社区和论坛
-
PyTorch 论坛:
- PyTorch Forums
- 这是一个活跃的社区,可以在这里提问、分享和讨论 PyTorch 相关的内容。
-
Stack Overflow:
- PyTorch on Stack Overflow
- 在 Stack Overflow 上可以找到许多关于 PyTorch 的问题和答案。
-
GitHub:
- PyTorch GitHub Repository
- 你可以查看源代码、提交问题或贡献代码。
YouTube 频道
-
DeepLearningAI:
- DeepLearningAI YouTube Channel
- 提供了许多关于深度学习的讲座和教程。
-
Sentdex:
- Sentdex YouTube Channel
- 提供了关于 Python 和深度学习的多种教程,包括 PyTorch。
-
Two Minute Papers:
- Two Minute Papers YouTube Channel
- 这个频道提供了最新的深度学习研究论文的简要介绍,帮助你了解前沿技术。