Windows10系统安装PyTorch完整教程
1. 概述PyTorch是一个开源的Python机器学习库,其前身是著名的机器学习库Torch。2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch,它是一个面向Python语言的深度学习框架,不仅能够实现强大的GPU加速,同时还支持动态神经网络,这是很多主流深度学习框架比如Tensorflow等都不支持的。PyTorch既可以看作加入了GPU支持的num
1. 概述
PyTorch是一个开源的Python机器学习库,其前身是著名的机器学习库Torch。2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch,它是一个面向Python语言的深度学习框架,不仅能够实现强大的GPU加速,同时还支持动态神经网络,这是很多主流深度学习框架比如Tensorflow等都不支持的。PyTorch既可以看作加入了GPU支持的numpy,同时也可以看成一个拥有自动求导功能的强大的深度神经网络。除了Facebook外,它已经被Twitter、CMU和Salesforce等机构采用。作为经典机器学习库Torch的端口,PyTorch 为 Python 语言使用者提供了舒适的深度学习开发选择。
尽管推出时间不长,但是目前,Pytorch已成为深度学习领域使用最火热的框架。其原因主要包括以下三点:
(1)简洁:
PyTorch的设计追求最少的封装,尽量避免重复造轮子。 简洁的设计带来的另外一个好处就是代码易于理解。PyTorch的源码只有TensorFlow的十分之一左右,更少的抽象、更直观的设计使得PyTorch的源码十分易于阅读。
(2)速度:
PyTorch 的灵活性不以牺牲速度为代价,在许多评测中,PyTorch 的速度表现胜过 TensorFlow和Keras 等框架。
(3)易用:
PyTorch 是所有的框架中面向对象设计的最优雅的一个。PyTorch的面向对象的接口设计来源于Torch,而Torch的接口设计以灵活易用而著称,Keras作者最初就是受Torch的启发才开发了Keras。PyTorch继承了Torch的衣钵,尤其是API的设计和模块的接口都与Torch高度一致。PyTorch的设计最符合人们的思维,它让用户尽可能地专注于实现自己的想法,即所思即所得,不需要考虑太多关于框架本身的束缚。
2. 安装
由于PyTorch面向的是Python语言,因此首先需要安装Python。
Python的安装方法,请参考:https://blog.csdn.net/cxh_1231/article/details/113826949
PyTorch主要用来进行深度学习算法建模和推理,为了加快算法训练速度,一般情况下需要使用带GPU的电脑进行Pytoch安装,而为了能够在PyToch中准确使用GPU,首先需要安装GPU环境,包括cuda
和cudnn
。
在确保正确安装GPU环境后再安装PyToch。
2.1 安装cuda
随着显卡的发展,GPU越来越强大,而且GPU为显示图像做了优化。在计算上已经超越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,因此NVidia推出CUDA,让显卡可以用于图像渲染和计算以外的目的(例如这里提到的通用并行计算)。CUDA即Compute Unified Device Architecture,是NVidia利用GPU平台进行通用并行计算的一种架构,它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。开发人员可以利用C言、OpenCL、Fortran、c++等为CUDA架构编写程序。简单来理解,cuda就是NVidia提供的可以将显卡进行并行运算的一种软件驱动。
这里注意,我们的最终目标是使用PyToch,而特定PyTorch对cuda的版本是有要求的。
因此,我们在安装cuda之前需要先确认到底装哪个cuda版本
才行。
首先进入Pytoch安装官网:https://pytorch.org/,然后在 INSTALL PYTORCH
模块显示如下信息:
此处会自动列出当前最新最稳定 Stable
的Pytoch版本。此时为 Pytorch1.6.0
。
接下来的操作系统OS选择 Windows
,安装方式选择 Pip
,语言选择Python
。
CUDA选择可以看出,官方推荐与Pytorch1.6.0适配的版本是cuda9.2、cuda10.1和cuda10.2。
到底选择哪个CUDA版本呢?请继续看
首先我们要确定本机是否有独立显卡。在 计算机-管理-设备管理器-显示适配器
中,查看是否有独立显卡,如下图所示:
如上图所示,可以看到,当前系统拥有两块NVIDIA显卡,型号均为GeForce GTX1080 Ti
。
接下来,需要查询本机独立显卡是否支持CUDA的安装
,以及该显卡实际执行时运行速度有多快。
可以访问英伟达官网查询,链接:https://developer.nvidia.com/cuda-gpus,如下图所示:
由于我们的机器是GeForce系列,因此单击 CUDA-Enabled GeForce and TITAN Products
展开查询。
通过上图可以看到,GeForce GTX 1080Ti在支持的列表里面
,其计算能力等级为6.1。点进去,可以看到该显卡支持的详情。
接下来就可以安装cuda
。
进入cuda安装官网:https://developer.nvidia.com/cuda-toolkit-archive
通过上图我们可以看到,CUDA的最新版本已经到了11.0,但是需要适配前问中的Pytorch1.6.0
,所以最高只能选择10.2
。
下面我们选择 CUDA Toolkit 10.1 update 2
进行下载。单击后会进入版本配置界面,按下图进行选择即可:
安装好后单击 Download
进行下载。
接着就是安装过程,双击打开显示临时解压目录,可以改变解压目录然后进行解压即可:
解压完成后会自动进入安装流程,如下图所示:
按照安装提示默认安装即可。
安装完成后,可以打开文件夹 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA
,可以看到当前目录已经存在v10.1
文件夹,表示已经成功安装cuda10.1版本
,并且上述安装程序已经自动
的向环境变量中添加了对应的cuda路径,使得后续PyTorch可以正常调用和执行。
最后,测试一下cuda是否安装成功。
打开cmd命令终端,然后输入命令:
nvcc -V
正常情况下会出现下图所示结果:
2.2 安装cudnn
这里读者会有疑问,cudnn是什么?为什么装了cuda了还要再装cudnn?
为了解释上述两个问题,我们需要重新梳理一下我们使用Pytorch的最终目标是什么。
毫无疑问,我们是用它来进行深度学习训练和推理,深度学习本质上就是训练深度卷积神经网络。尽管我们已经可以用cuda使得显卡来完成并行计算任务,但是所有的操作还是比较底层的、复杂的。是否在cuda之上有一个专门用于深度神经网络的SDK库来加速完成相关特定的深度学习操作,答案就是cudnn。
NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如caffe、tensorflow、pytorch、mxnet等。cudnn简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是调整性能,同时还可以在GPU上实现高性能现代并行计算。
简单来说,cuda就是用来定义显卡并行运算的一些列底层GPU操作库,cudnn则是在cuda基础上专门正对深度学习定制的高级GPU操作库。
cudnn官网下载地址:https://developer.nvidia.com/cudnn
访问该网站,需要注册登录英伟达账号后,并填写相关个人信息,然后才可以进入下载页面。这个过程按照提示一步步操作即可。
最终下载页面如下图所示:
我们选择cuDNN v8.0.3版本,因为该版本适配cuda10.1。最后,展开后选择对应的操作系统版本即可。
本文选择cuDNN Library for Windows 10。虽然标题中显示的是X86,即32位架构,但实际下载的文件是X64的。
下载之后,解压缩,将CUDNN压缩包里面的bin、clude、lib文件直接复制到CUDA的安装目录下(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
),直接覆盖安装即可完成。
2.3 安装Pytoch
安装完cuda和cudnn后,安装pytorch相对比较简单。
在安装cuda时已经进入了pytorch的安装选择配置页面,此时根据相关配置会自动给出安装方法,如下所示:
此时,只需要在cmd终端中运行 Run this Command
中的命令即可:
pip install torch==1.6.0+cu101 torchvision==0.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html
Previous versions of PyTorch
此时会开始安装torch1.6.0和torchvision0.7.0。
2.4 验证
接下来验证Pytorch是否安装成功并且能够成功调用cudnn。首先在命令行中输入python
进入python环境,然后依次输入命令:
import torch
print(torch.__version__)
效果如下图所示说明pytorch已经安装成功:
接下来再验证pytorch调用cuda是否正确。输入命令:
print(torch.cuda.is_available())
效果如下图所示即为成功:
参考资料:
1. https://blog.csdn.net/qianbin3200896/article/details/104244538
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)