赞
踩
在深度学习框架中,除了Tensorflow之外,Pytorch也是经常需要用到的主流框架之一,关于Tensorflow的安装以及配置已经在上一篇文章中详细介绍过了,参见文章连接:配置Tensorflow使用CUDA进行GPU加速(超详细教程)
这篇具体介绍Pytorch的详细安装与配置,本文将详细说明三种Pytorch安装方式并给出对比和建议,如果不清楚用哪种方式安装建议先看最后的总结部分
cmd命令行输入以下命令:
nvidia-smi
红框的CUDA Version: 12.1表示最高能安装CUDA 12.1的版本,如果CUDA12.1及以下版本能满足项目需求,就不需要更新显卡驱动,否则就需要安装更高版本的显卡驱动,从而安装更高版本的CUDA
我的CUDA Version是12.1,只要安装小于等于12.1版本的CUDA就不用更新驱动
如果这里的CUDA Version小于你要安装的CUDA版本则进入下面英伟达官网下载更新驱动
https://www.nvidia.com/Download/index.aspx
查看CUDA与Pytorch的版本对应关系有两种方式
一是访问官网https://pytorch.org/get-started/previous-versions/每条安装命令前均会说明对应的CUDA版本
但是这里提供的版本是相对较少的,如果想查看更多版本可以通过方式二访问https://download.pytorch.org/whl/torch/
比如你想安装CUDA12.1版本对应的Pytorch就搜索cu121(.whl文件名中的cu121表示cuda的版本为12.1以此类推),会出现符合要求.whl文件,在文件名字最开头就有torch的版本信息,比如第一个结果对应的torch版本是2.1.0但该文件是linux下的,后面如果用whl文件安装特别需要注意这个细节,此外要注意别下载CPU版本去了,建议查看后面的whl方式安装步骤再进行安装,这里只是先做一下准备工作
当然你也可以先确定torch版本再找对应cuda的版本也是可以的
访问https://github.com/pytorch/vision?tab=readme-ov-file#installation
可以看到torch与torchvision以及python的版本对应关系
访问https://pytorch.org/audio/main/installation.html#compatibility-matrix
里面有Pytorch与torchaudio及Python版本的对应关系
其实通过以上查询发现,Python对应的需求版本都会提及,所以不必刻意去找Python应该符合的版本
注意: 并不是所有版本的CUDA都有与之对应的torch版本,如11.2版本的CUDA是没有对应的torch版本的
准备工作完成后下面正式进入Pytorch安装,这里建议不要通过pip方式安装,建议用whl或conda方式安装,pip方式安装了解一下即可
先进入Pytorch官网https://pytorch.org/查看对应依赖版本,目前最新版本到了2.2.2
如果不想安装最新版本可以选择安装早期版本,点击install previous versions of PyTorch对应的超链接或下方的Previous versions of PyTorch或者直接输入下方网址:
https://pytorch.org/get-started/previous-versions/
里面提供了一些早期版本的conda和whl以及pip安装命令
因为Tensorflow2.10版本后不再支持在Windows设备上使用GPU加速,所以windows下Tensorflow支持的CUDA最高版本为11.2;由于之前我安装Tensorflow时安装了11.2版本的CUDA,为了节省空间不安装两个版本的CUDA,这里直接使用11.2版本的CUDA。如果后续因为版本问题需要安装更高版本的Pytorch再安装其他版本的CUDA即可,方法是一样的。当然可以根据自身需要来选择版本;
注意:pip安装需要先自己安装CUDA和CUDNN,关于CUDA和CUDNN的安装详见上一篇文章配置Tensorflow使用CUDA进行GPU加速(超详细教程)
通过查看https://pytorch.org/get-started/previous-versions/,发现并没有支持CUDA 11.2版本的torch版本,为了确保后期使用过程中不会出问题这里选择向下兼容即安装11.1版本CUDA的对应的PyTorch
找到11.1版本CUDA对应的torch版本是1.10.1,对应安装命令如下:
pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html
安装之前先通过Anaconda创建虚拟环境,如果没有安装Anaconda的建议去安装一下,以后会经常用到,具体教程可参考:配置Tensorflow使用CUDA进行GPU加速(超详细教程)
先创建一个名为pytorch_1.10的虚拟环境并指定Python版本为3.9,虚拟环境名字可以自己取,python版本只要符合要求的就行
conda create -n pytorch_1.10 python=3.9
查看当前虚拟环境,可以看到刚才创建的虚拟环境pytorch_1.10已经显示存在
conda env list
激活才创建的虚拟环境pytorch_1.10
conda activate pytorch_1.10
通过pip安装Pytorch及依赖,最好先对pip进行换源否则下载会很慢,我这里用的是清华大学镜像
pip永久换源可参考如下:
先打开pip.ini文件,一般在C:\Users\XXX\AppData\Roaming\pip路径下,没有该目录就自己创建一下并创建pip.ini文件
用记事本打开pip.ini文件设置镜像,在pip.ini文件写入内容如下:
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
建议不要写成下面这样,因为这样做即使换源成功了也很可能会导致pip安装速度只有几百kb
嫌麻烦的话,可以在命令最后添加-i https://pypi.tuna.tsinghua.edu.cn/simple暂时换源
换好源后开始pip安装,官方给的1.10.1版本的pip安装命令如下:
pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html
最好在pip后添加–default-timeout=100设置一下超时时间,以防报ReadTimeoutError类似的错误:类似下面这种
这里设置超时时间为100秒,基本不会再出现ReadTimeoutError的错误
pip --default-timeout=100 install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html
输入以上命令:
结果报错了,报错原因是No matching distribution found for torchvision==0.11.2+cu111
意味着没有找到0.11.2版本的 torchvision,我们具体看看是不是这样
进入CUDA11.1版本的torch页面:https://download.pytorch.org/whl/cu111/torch_stable.html
在网页中搜索torchvision-0.11.2
结果发现对于torchvision,torchvision0.11.2这个版本是没有win环境下的安装包的,只有linux和macosx版本
事实上torchvision-0.11.x版本根本就没有没有windows的包
意味着按照官方要求的话windows下就没法安装1.10x版本的Pytorch,因为对应的torchvision0.11x没有windows版
没办法只能向下寻找版本了,向下的最近一个版本是1.9.1,对应的torchvision版本是0.10,torchaudio版本是0.9.1
为了万无一失,先去https://download.pytorch.org/whl/cu111/torch_stable.html看看是否有对应版本的torchvision和torchaudio
由于我的python版本是3.9所以torchvision 0.10版本中有0.10.0和0.10.1两个小版本可供windows平台选择,这里选择torchvision 0.10.1
由于torchaudio版本已经精确到0.9下的子版本0.9.1了所以直接搜torchaudio-0.9.1即可,可以看到有windows版本
所以综上,pip安装1.9.1版本的Pytorch命令如下
pip --default-timeout=100 install torch==1.9.1+cu111 torchvision==0.10.1+cu111 torchaudio==0.9.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html
令人无法接受的速度,当然这个速度因人而异,但估计不会太快,所以这里放弃使用pip方式安装,当然声明一下pip方式完全是可以安装成功的,只不过容易出现问题,所以不太推荐而已。我这里改用whl方式安装,后面总结中会说明这两者的区别
可以看到pip方式安装是非常容易出问题的,首先下载速度可能很慢,其次直接用官网给的命令很有可能会出现上述在windows平台下找不到指定版本的torchviosion或torchaudio错误,因为官方给的那个命令说的是Linux and Windows就会出现这种linux中有对应依赖而windows中没有的情况
既然如此pip安装也需要自己先找好这几个依赖的版本就不如采用下面的whl方式安装,毕竟速度比pip快了不止一点半点
因此,不太建议用pip方式安装Pytorch
还是以安装1.9.1版本的Pytorch为例,其他版本的安装步骤也是一样的,只不过依赖版本有所不同
注意:whl方式安装同样需要自己先安装CUDA和CUDNN,关于CUDA和CUDNN的安装详见上一篇文章配置Tensorflow使用CUDA进行GPU加速(超详细教程)
确保已经安装好CUDA和CUDNN前提下,访问https://download.pytorch.org/whl/torch/,这里给出了所有版本的pytorch。但是页面的内容太多了不太容易找到我们需要的文件;如果确定用哪个版本的CUDA的话也可以访问下面这个网址:
https://download.pytorch.org/whl/cu+你的cuda版本号
例如cuda11.1,就访问https://download.pytorch.org/whl/cu111
这两个网址其实随便访问哪个都可以,没有太大区别
下面以访问https://download.pytorch.org/whl/cu111为例:当然这个网址需要根据你将要使用的CUDA版本进行修改,不确定用哪个版本的CUDA就访问https://download.pytorch.org/whl/torch/
要下载torch就点击torch即可
点击torch后则进入以下界面:在网页中搜索torch-1.9.1,注意别下成cpu版本的了,下面红框圈出的符合要求
同样搜索torchvision-0.10.1结果如下:
最后搜索torchaudio-0.9.1结果如下:
依次点击上面红框标注的三个.whl文件进行下载,100M带宽下大概四五分钟就能下好,下载好的文件如下:
下面正式进入whl安装,需要在虚拟环境中进入到刚才那三个.whl文件下载的路径
如果当前的路径还在C盘下,而三个.whl文件下载的路径在D盘的话要先输入D盘的盘符D:
其他下在非C盘的以此类推,否则直接输入cd +路径是无法成功进入目标路径的,如果下载在C盘则直接cd即可
比如我的.whl文件下载在D:\Downloads\Misc则依次输入以下命令:
D:
cd D:\Downloads\Misc
注意别忘了要先激活虚拟环境
先安装torch,输入pip install torch然后按Tab键自动补全:
torch安装成功如下图:
再安装torchvision,输入pip install torchvision然后按Tab键自动补全:
最后安装torchaudio,输入pip install torchaudio然后按Tab键自动补全:
检查一下是否安装好以上依赖:
conda list
结果如下就是安装成功了
验证一下Pytorch是否安装成功,在命令行先输入python进入python环境,接着分别输入以下三句命令
import torch
print(torch.__version__)
print(torch.cuda.is_available())
可以看到一个大大True,恭喜安装成功,可以愉快使用GPU进行加速了!
安装之前先确保已经安装好了Anaconda,如果没有安装Anaconda的建议去安装一下,以后会经常用到,具体教程可参考:配置Tensorflow使用CUDA进行GPU加速(超详细教程)
tips: 为了加快用conda命令安装的进度可以换为国内的镜像,以下是具体步骤:
先进入Anaconda Prompt窗口
由于我已经更改了Anaconda默认下载镜像,所以这里直接使用我之前的配置步骤供大家参加,可以直接访问我的上一篇文章即可:配置Tensorflow使用CUDA进行GPU加速(超详细教程)
出现位置如下,这里就不再赘述了
以上工作完成后同样以安装1.9.1版本的Pytorch为例(后面也有安装当前最新版本的教程,自己决定安装版本即可)官方提供的命令如下:
conda install pytorch==1.9.1 torchvision==0.10.1 torchaudio==0.9.1 cudatoolkit=11.3 -c pytorch -c conda-forge
其实不一定要完全按照官方命令来,因为上面whl方式安装的1.9.1版本的torch用的CUDA版本为11.1,所以这里将cudatoolkit版本改为11.1,并且删去-c pytorch否则会使用国外镜像,导致下载很慢,修改后的conda命令如下:
conda install pytorch==1.9.1 torchvision==0.10.1 torchaudio==0.9.1 cudatoolkit=11.1 -c conda-forge
安装之前还是先创建虚拟环境,创建一个名为pytorch的虚拟环境并指定python版本为3.9
conda create -n pytorch python=3.9
激活才创建的虚拟环境pytorch
conda activate pytorch
并输入修改后的conda安装命令:
输入y确认:
换源后下载速度几乎可以跑满带宽:
出现done则说明安装完成了:
验证一下,先输入python进行python环境后依次输入以下命令:
import torch
print(torch.__version__)
print(torch.cuda.is_available())
的结果为True说明已经安装成功并可以使用GPU加速了
这里再安装最新版本为2.2.2的Pytorch(根据自己需要安装即可,能安装一个版本就尽量安装一个版本以节省空间,我这里只是为了演示一下),先创建虚拟环境pytorch_2.2.2并指定python版本为3.11
conda create -n pytorch_2.2.2 python=3.11
验证一下虚拟环境是否创建成功
conda env list
可以看到已经成功创建虚拟环境pytorch_2.2.2
进入官网https://pytorch.org/获取最新版Pytorch安装命令
安装命令如下:
conda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
激活刚创建的虚拟环境并输入上述命令:
输入y确认:
下载过程如下:
出现done说明安装完成
验证一下,先输入python进行python环境后依次输入以下命令:
import torch
print(torch.__version__)
print(torch.cuda.is_available())
出现True说明安装成功了
说明一下即使之前已经安装了符合要求的cuda和CUDNN,使用conda命令在虚拟环境中安装Pytorch依然会重新下载一些cuda相关的文件,也就是说用conda安装的话之前自己下载安装的cuda不会用上,系统会再装一遍不过和自己装的cuda不完全相同,这就会导致浪费更多的空间,如果想用上之前安装的cuda不想系统再下载coda相关文件占用更多空间的话就用whl方式安装
为了对比一下,我创建了两个虚拟环境,一个虚拟环境pytorch通过conda方式安装torch1.9.1,虚拟环境pytorch占用空间大小如下:
此外,在D:\Program Files\Anaconda3\pkgs目录下还有一个pytorch-1.9.1-py3.9_cuda11.1_cudnn8_0文件夹大小为3.91GB
并且还有下面这样的文件
另一个虚拟环境pytorch_1.9.1通过whl安装了同样是1.9.1版本的torch,该虚拟环境大小为5.93GB,比conda安装的小不少并且不会生成pytorch-1.9.1-py3.9_cuda11.1_cudnn8_0类似的文件夹,因此如果之前已经安装了CUDA可以采用whl方式安装可以节省不少空间
总结一下三种安装方式:
其中pip安装和whl安装都需要自己先去官网下载并安装cuda和CUDNN,pip安装其实就是通过命令去官网下载所有Pytorch依赖不用自己下载,但是速度比较慢也容易出问题,要确保安装成功还是需要去官网查找能够匹配的相关依赖版本否则很可能会出错
whl安装则需要自己去官网下载Pytorch相关包即三个.whl文件再进行安装相当于离线安装,好处是下载速度飞快,对比来看其实pip和.whl方式安装本质上是差不多的
而coda安装是其中最省事的安装方式,也是官方首推的;通过conda只需要输入命令即可,都不用自己下载并安装cuda和CUDNN,对大多数人很友好,但是如果你之前已经安装有满足要求版本的CUDA的话会占用比较多的空间
综上,给出我个人的安装建议,如果你想省事也不在乎空间占用问题就优先考虑使用conda方式,如果之前已经安装有满足要求版本的CUDA又想节省空间则建议使用.whl方式安装
如果需要清除虚拟环境,操作如下:
先退出当前虚拟环境
conda deactivate
接着删除即可,如删除虚拟环境pytorch_1.10命令如下:
conda remove -n pytorch_1.10 --all
再输入y确认一下即可
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。