conda安装GPU版pytorch,结果总是cpu版本

一.问题

正常安装某版本pytorch时,采用官网的方法和对应的命令,选择适合的pytorch、cudatoolkit版本

Previous PyTorch Versions | PyTorch

由于要在GPU上运行,但测试发现pytorch装的是cpuonly的版本:

python
import torch
torch.cuda.is_available()

得到的结果是false

再检查安装的pytorch版本,可以看到是cpuonly的版本:

 二.解决方案

这里建议直接采用解决三

 解决一:

参考:安装pytorch-gpu时会默认安装cpu版本_勇往无前猪猪侠的博客-CSDN博客

很多方法都说conda uninstall cpuonly过后,再重新装就好,但我采用了这个命令后仍然安装的是cpuonly的版本。

一个小tip:删除cpuonly后,最好清空一下conda的包的缓存,否则笨蛋conda看到缓存中包含了要求的pytorch版本,并不会从官网重新下载新的pytorch,装回来的还是cpuonly的版本。指令:

conda clean -p      //删除缓存
conda clean --all 

大部分人遇到的问题在这里已经解决了,尽管如此,我的cpuonly问题仍然没有解决。

解决二:

看到一篇关于分析cpuonly问题的根本原因:https://windses.blog.csdn.net/article/details/125910538r​​​​​​​r

如果你采用的不是默认源,而添加了诸如清华源等其他源,这些源中可能不包含你所要求的cudatoolkit,torchversion,pytorch版本,conda可能确实会自作主张Install别的pytorch了,解决方案参考链接。

解决三:

非常不幸,我关掉了清华源采用默认源,认真卸载了cpuonly和旧的pytorch,也清理了conda缓存包,还按照官网的conda forge指令下载,但conda还是有他自己的想法硬装CPU版。

问题的本质是conda根据你的指令不能选中唯一的包,总是选中其他的安装包,那我们不妨强行锁定包的版本,或者自己下载好wheel在本地pip安装。

举例:我的显卡是3090,必须采用11.0以上的cuda版本,python版本3.8,pytorch因为环境适配原因必须选择1.8.1,进入pytorch相关版本的网站查看所有whl:

https://download.pytorch.org/whl/torch_stable.html

在这里找到我需要的whl:cu111,torch1.8,cp38,linux——点击下载

 下载后,进入下载的位置,pip+包名即可安装。

或者不用下载到本地,采用pip指令,比如我采用的是:

pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

注意需要在上述网站中找到网站中有的torch\cuda\python兼容的包,没有的会报错。安装其他版本的家人们在相关位置做替换即可。

如果cudatoolkit原本不是这个包的版本,就conda install cudatoolkit=版本,重新安装cudatoolkit即可,只要与自己的GPU适配即可(可在NVIDIA官网查到适配版本)

这样就成功装成了gpu版本的pytorch:

import torch
torch.cuda.is_available()

显示为true

问题解决

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2023年11月9日
下一篇 2023年11月9日

相关推荐