PyTorch是一个开源的Python机器学习库,其前身是Torch。2017年由Facebook人工智能院基于Torchtu推出了PyTorch,新版本不仅使用Python重写了大量内容,提高了灵活易用性,同时提供强大的GPU加速张量计算,并包含自动求导系统的深度神经网络。
2022年9月,扎克伯格宣布PyTorch基金会已经成立,并归入Linux基金会旗下。目前PyTorch是使用人数增长最为迅速的深度学习框架,且由于其高度定制性和灵活性,日益受到学术研究领域的推崇。
本文将基于Windows 10系统,安装部署本地的PyTorch框架,其中主要涉及:
PyTorch前置环境的准备,即通用Python数据分析平台搭建,包括Anaconda + PyCharm
GPU所需CUDA和CuDNN的安装
PyTorch的本地化安装与简单验证
Python作为一种功能强大的胶水语言,其优势之一是存在功能丰富且强大的工具库。Anaconda提供了conda机制用于管理Python数据分析时常用的工具库/包。
前往Anaconda官网下载最新的Anaconda安装文件(https://www.anaconda.com/),注意Anaconda2针对传统Python2.7版本,使用Python3.X的同学应下载Anaconda3系列文件,如本次配置下载文件为:Anaconda3-2021.11-Windows-x86_64.exe。
也可使用清华大学Anaconda镜像站:https://mirrors4.tuna.tsinghua.edu.cn/help/anaconda/
安装时可以自行指定安装位置,安装过程中尽可能勾选“将Anaconda执行路径加入到系统路径”的选项,以便于后续Terminal运行时可以自动识别conda命令。若没有或无法勾选该选项,也可以在安装完成后,定位到Windows系统的系统环境变量,进行添加。系统环境变量修改方法为:
1)在控制面板中搜索框中,输入“环境变量”(也可使用其他方法),点击“编辑系统环境变量”
2)选中“Path”变量,点击“编辑”后,新建命令指令路径,复制插入:%Anaconda% | %Anaconda%\Lib | %Anaconda%\Library\bin | %Anaconda%\Scripts,其中%Anaconda%表示安装Anaconda的文件目录路径
3)重启系统以使得新“Path”生效,并在cmd/powershell中输入conda命令查看是否可以正确解析
当conda可以正确识别时,为了后续使用方便,运行conda更新与升级命令,以获取兼容当前环境的最新工具包,更新升级选择“Y”结束后,即完成Anaconda的基本配置。
conda update conda
conda upgrade conda
Python自带的IDE与Jupter轻量方便,但功能有限,为了后续调试代码与项目搭建需要,本文选择使用PyCharm作为统一的IDE环境。
前往PyCharm官网下载安装包(https://www.jetbrains.com/pycharm/download/#section=windows),专业版提供远程编译调试功能(ssh方式),社区版免费仅提供本地编译调试,可以根据需求选择下载。上学的朋友可以使用教育邮箱注册使用专业版,每年激活验证即可。
Cuda是NVIDIA发明的一种并行计算平台和编程模型,它通过利用图形处理器GPU的处理能力,大幅提升计算性能;CuDNN则是GPU加速使用的深度神经网络原语库,CuDNN为标准例程提供了高度优化的实现,例如向前和向后卷积,池化、规范化和激活层等。通常我们安装Cuda的同时也会安装相应的CuDNN。
一般不同类型的显卡会支持不同版本的驱动,进而支持不同范围的Cuda/CuDNN,因此需要查询NVIDIA的官方说明选择合适的驱动、Cuda和CuDNN版本。
本文使用的笔记本显卡为MX450,通过升级到最新的显卡驱动,可以发现该显卡已安装Cuda 11.6版本,其查看命令为在cmd终端下输入“nvidia-smi”即可。
接下来需要根据PyTorch的版本来确定Cuda版本的选择,点击进入PyTorch官网(https://pytorch.org/),点击“Get Started”后可以看到网站识别本地硬件后给出的推荐配置,当前PyTorch最高支持Cuda-11.7(2023年1月),而官网查询可知MX450支持该版本Cuda,考虑到Cuda采取后向兼容机制,导致越高的Cuda版本可以运行更多早期版本的Cuda代码,因此本文选择主动升级到Cuda-11.7后再安装PyTorch。
无论是Cuda还是CuDNN,都是NVIDIA开发者项目的一部分,Cuda可以前往官网(https://developer.nvidia.cn/cuda-downloads),选择自己的系统、CPU架构、Cuda版本进行下载。
下载完成后运行相应的安装包文件,完成Cuda的本地安装,本文采用默认的安装位置。
Cuda安装完毕后,前往CuDNN官网(https://developer.nvidia.com/rdp/cudnn-download),注册登录账号后,选择适合11.X版本的CuDNN文件即可:
下载完成后发现是“archivezip”格式文件,其实是zip压缩格式,只需要分割文件名后缀为“archive.zip”即可解压缩得到目标文件。将CuDNN中的bin、include和lib三个文件目录复制到Cuda安装目录中即可。
现在我们已经在本地安装了Cuda+CuDNN,Anaconda+PyCharm环境,接下来要下载安装合适的PyTorch了。
回到PyTorch官网的“GetStarted”下载页面,可以看到提供多种下载方式。第一种conda方式需要运行提供的命令即可,但是亲测速度比较慢,不推荐;推荐第二种,选择pip方式下载安装,复制命令行中的https地址,直接用web访问链接,即可进入到下载目录。
pip方式安装PyTorch:pip3 install torch torchvision torchaudio–extra-index-url https://download.pytorch.org/whl/cu117
随后在下载目录界面中选中“torch”(https://download.pytorch.org/whl/torch/),选择最新的torch-1.13.0+cu117-cp39-cp39-win_amd64.whl下载。
同理可在“torchvision”(图像处理相关工具包)中选择相应版本torchvision-0.14.0+cu117-cp39-cp39-win_amd64.whl下载。
需要注意的是,whl后缀文件需要用pip/pip3命令打开,因此需要进入到cmd/powershell中,运行cd命令进入到torch/torchvision安装路径,依次运行pip/pip3 install torch/torchvision文件名即可。
此时若遇到提示powershell不能运行脚本,大概率是由于windows系统的安全限制所致,只需要在“管理员身份”打开powershell,然后运行命令“Set-ExecutionPolicy Unrestricted”即可,其中参数含义如下:
为了验证PyTorch是否安装成功,我们需要在PyCharm中编辑脚本简单调用“import torch”模块,并输出命令验证是否安装成功。
由于本机只安装了Anaconda,因此默认执行Anaconda下的Python命令。
为了验证本机是否成功配置了PyTorch环境,需要新建一个Python项目,并编写Python脚本文件,内容如下:
# 导入torch模块
import torch
# 打印安装的PyTorch版本
print('Torch version is {}', torch.__version__)
# 打印是否支持Cuda
print(torch.cuda.is_available())
运行结果如下:
至此本地PyTorch环境基本搭建完毕,后续即可开始相应的实验测试。
此次感触最深的是:如今已然不是讨论车轮是圆形还是方形,异或车轮可以用多久的时代,而是讲究车轮可以尽快上路的时代,即“效率为王”的时代。
无论是技术Blog、线下求教、线上课辅导,总之能让自己尽快入门上手的方式,就是好方式。