首先进入官网:Start Locally | PyTorch
在官网中说需要先安装numpy等包,其实用conda源的话就不需要,因为在安装PyTorch的过程中就会自动安装所需的包。用pip的话没有测试过。
系统环境,一般能安装就没问题。可以自检一下,Linux的系统最低版本要求:
Windows的最低版本要求:
PyTorch包的版本,一般如果项目有需求就按照项目需求来。如果没有需求建议直接选择LTS版本。LTS意为长期支持(Long-term Support),意思是保证这个版本会在长期得到支持(改bug等)1,因此建议安装此版本。
如果您需要安装的版本是官网首页的这些版本,可以据此直接选择您的PyTorch版本、OS版本、想用以安装的工具(一般推荐anaconda,原因会在后文介绍)、语言选择Python、计算平台选择CPU或者您对应的cuda版本(后文会介绍如何选择),复制命令行直接运行即可:
更早的PyTorch版本可以在这个页面:Previous PyTorch Versions | PyTorch 里查找对应的命令行。
一般推荐使用anaconda安装,在官网中给出的理由就是它会帮忙直接下载好所有依赖,尤其是cudatoolkit。
关于cuda的选择,首先您需要查看您本机的cuda版本。
Windows的查看方式:
打开nvidia控制面板。一般都在折叠图标里面:
也可以通过开始菜单打开:
打开后界面类似如下:
点击“帮助-系统信息-组件”,显示如下图界面中红圈所示位置就是cuda版本,图中即11.4:
另外还有一种通过命令行查看的方式:nvcc --version,但是这个我本机没有。
此外还有一个是通过nvidia-smi命令行查看cuda版本:
Linux使用命令行的查看方式类似。
但是另外还可以通过cat /usr/local/cuda/version.txt查看cuda版本。这个一般都是有的,如果没有我也暂时没有办法……
效果示例:
CUDA Version 10.0.130
但是需要注意,使用上述所有方式最后得到的cuda版本可能不一定一样,可以参考这篇博文:1.查看cuda版本-nvcc -V、cat /usr/local/cuda/version.txt、nvdia-smi 三种方式得到的都不一样_图形学挖掘机的博客-CSDN博客
这个情况比较复杂,简单来说,是因为cuda有Runtime 运行API和 Driver 驱动API两种版本。一般运行API版本<=驱动API版本即可。而软件运行时调用的应该是Runtime Version。所以一般要求按照版本比较低CUDA的来选择PyTorch的cuda版本。
别的细节我也不清楚,以后研究研究可能会回来补。
实在闹不清楚也没关系,后文会介绍cuda版本安错了的解决方式。
在选择PyTorch的cuda版本时,最好选择与本机cuda版本匹配的版本。
如果没有,可以选择比本机cuda版本更低的版本。但是这样的话建议使用conda作为下载源,因为这样才可以自动下载cudatoolkit工具。(因为我用pip源安装过,就没有)
不过如果下错了也没关系,后文会介绍PyTorch安装完成后如何检验PyTorch能否使用cuda。如果不能用,一般就是下错了,卸载重安一遍就行……
(这就是安装在虚拟环境里面的意义,如果卸载重安搞乱了就直接删除整个虚拟环境,再开个新环境就vans)
如以官网首页的LTS版本PyTorch,cuda10.2,使用conda作为下载源为例,官网提供的命令行如下:
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch-lts
如果terminal已经在虚拟环境中,可以直接执行该命令行。
反之需要在install后加上-n 虚拟环境名。
如果下载较慢,建议使用代理等方式。
如果您的PyTorch cuda版本与本机版本对应,可以考虑使用清华源镜像等方式。使用镜像的方式,我后期可能也会撰写相应的博文。如果不对应,说明您需要从pytorch官方源(-c指定)下载cudatoolkit包,镜像里可能没有(我用过清华源,就没有)。
(2022.8.3补,PyTorch1.11 cuda10.2场景)下载失败了一百次吧可能,每次都是报这个错:
CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://conda.anaconda.org/pytorch/linux-64/pytorch-1.11.0-py3.8_cuda10.2_cudnn7.6.5_0.tar.bz2> Elapsed: - An HTTP error occurred when trying to retrieve this URL. HTTP errors are often intermittent, and a simple retry will get you on your way.
我尝试了可能有一百种方法吧,最后发现还是得靠无限重试。
我服了!
安装完成后,检验安装效果:
执行以下Python代码:
import torch x = torch.rand(5, 3) print(x)
检验cuda是否能使用(如果安装了cudatoolkit还不能用,一般来说是因为cuda版本安高了,卸载重新安装较低的版本就行。或者直接更新本机的cuda版本,也不是不行):
import torch print(torch.cuda.is_available())
如果打印True说明能用。
如果cuda不能用但还是在Python代码中强行使用GPU,会报这个错:AssertionError: Torch not compiled with CUDA enabled
返回PyTorch版本:torch.__version__