【conda安装pytorch总是下载cpu版本的问题】

conda安装pytorch总是下载cpu版本的问题

首先,表述问题:我在使用pytorchu官方网站安装torch1.9.0的GPU包,

链接: link
确保自己的安装的代码为

// cuda 11.3 版本
conda install pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cudatoolkit=11.3 -c pytorch -c conda-forge

我的硬件符合要求。然后安装完后

# -*- coding:utf-8 -*-
import torch

cuda_available = torch.cuda.is_available()
print("CUDA 是否可用:", cuda_available)
print(torch.__version__)

发现输出

False

我确定了自己的源是清华源,并且切换了北京外国语大学的源,都是相同的结果。以下是我解决问题的思路

切换系统

因为升级过显卡驱动,我以为是我显卡驱动出了问题,并且好久不使用win跑程序,可能误卸载了驱动之类的。于是我切换到ubuntu系统,因为ubuntu系统安装了torch的gpu版本,确定能够使用gpu版本的torch,在此系统不存在驱动问题。
使用相同的代码下载:

// cuda 11.3 版本
conda install pytorch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 cudatoolkit=11.3 -c pytorch -c conda-forge

结果:

# -*- coding:utf-8 -*-
import torch

cuda_available = torch.cuda.is_available()
print("CUDA 是否可用:", cuda_available)
print(torch.__version__)

发现输出

False

确定不是驱动问题,于是切换回win,继续排错。

包的问题

使用官方的代码下载的pytorch总是带有cpuonly这个包,在自己安装pytorch的环境下使用终端输入:

conda list

可以查看自己的安装的包。
对于cpuonly这个这么解决,参考:
链接: link
https://blog.csdn.net/god_roading/article/details/121109393
链接: link
https://blog.csdn.net/FAJFNWQGW/article/details/128531357

还有一些其他的答案,说可以卸载,本人的实测显示,无法卸载,根本就卸载不掉。
考虑其他方案。

离线安装

既然使用官方的下载代码都会是下载cpu版本,确定是代码有问题,这个问题应该早就考虑到,是我自己没想明白,但改代码我没有好的解决方法,希望大佬指教。我选择了离线安装,在国内源选择离线包下载在安装,确保下载的是gpu版本,肯定能解决问题。
国内源下载网站: link
https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/win-64/
查看官网的代码需要的包有三个:pytorch, torchvision, torchaudio
选择好版本,进行下载,
然后放在自己确定的目录内,win下右键就可以在该目录下打开终端,或者打开终端,cd到刚才提到的目录下,激活要安装torch的环境,使用conda安装:

#conda install --offline  加入包名,一定带上后缀.tar.bz2
#例如 
conda install --offline pytorch-1.9.0-py3.8_cuda11.1_cudnn8_0.tar.bz2

三个包都要安装,安装完成后 在该环境下输入:

conda list

可以查看自己的安装的包。
发现是gpu版本了

# Name                    Version                   Build  Channel
ca-certificates           2023.01.10           haa95532_0    defaults
libffi                    3.4.4                hd77b12b_0    defaults
openssl                   1.1.1t               h2bbff1b_0    defaults
pip                       23.0.1           py38haa95532_0    defaults
python                    3.8.16               h6244533_3    defaults
pytorch                   1.9.0           py3.8_cuda11.1_cudnn8_0    <unknown>
setuptools                66.0.0           py38haa95532_0    defaults
sqlite                    3.41.2               h2bbff1b_0    defaults
torchaudio                0.9.0                      py38    <unknown>
torchvision               0.10.0               py38_cu111    <unknown>
vc                        14.2                 h21ff451_1    defaults
vs2015_runtime            14.27.29016          h5e58377_2    defaults
wheel                     0.38.4           py38haa95532_0    defaults

于是信心满满, 打开pycharm或者其他ide或者使用该环境下的终端打开python
import torch
但是

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\ProgramData\Anaconda3\envs\LLFlowtprch\lib\site-packages\torch\__init__.py", line 135, in <module>
    raise err
OSError: [WinError 126] 找不到指定的模块。 Error loading "C:\ProgramData\Anaconda3\envs\LLFlowtprch\lib\site-packages\torch\lib\caffe2_nvrtc.dll" or one of its dependencies.

说是找不到这个caffe2_nvrtc.dll或者它相关的依赖 (dependencies) 有问题,于是想办法解决,打开报错的路径,文件夹内确实有caffe2_nvrtc.dll,那便是其相关的依赖有问题,如何解决?
win下dll依赖(dependencies)查看: link
https://github.com/lucasg/Dependencies
这里有很简单的gui可以快捷的查看相关依赖,进去GitHub之后点击Download herelink
https://github.com/lucasg/Dependencies/releases/download/v1.11.1/Dependencies_x64_Release.zip
下载是个安装包,然后解压。再解压的文件内看到DependenciesGui.exe,这是个gui界面,打开左上角 file ------> open------->想要查看的文件
这里我的路径是
C:\ProgramData\Anaconda3\envs\LLFlowtprch\lib\site-packages\torch\lib\caffe2_nvrtc.dll

点开之后发现有个报红,说缺少nvrtc64_111_0.dll。因为我已经解决问题了,因此不放图了。
这里是使用此gui的参考link
https://blog.csdn.net/weixin_67988386/article/details/128904986?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168439929216800227455950%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=168439929216800227455950&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-2-128904986-null-null.142v87control_2,239v2insert_chatgpt&utm_term=torch%5Clib%5Ccaffe2_nvrtc.dll&spm=1018.2226.3001.4187

然后网络上下载nvrtc64_111_0.dll,将其放回caffe2_nvrtc.dll路径下
我的路径为C:\ProgramData\Anaconda3\envs\LLFlowtprch\lib\site-packages\torch\lib
然后在该环境下import torch 没有报错
然后

# -*- coding:utf-8 -*-
import torch

cuda_available = torch.cuda.is_available()
print("CUDA 是否可用:", cuda_available)

发现输出

Ture

问题解决。

弯路

我甚至怀疑过cuda 以及cudnn出了问题,不过我重装过,没有什么作用,建议大家在折腾的时候,观察一下自己的基础驱动有没有装好。
最后说一下,特别感谢有这些平台,不然出问题真是头都大了。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值