Python&anconda系列(亲测有效):安装pytorch以及报错AssertionError: Torch not compiled with CUDA enabled解决方法

安装pytorch以及报错AssertionError: Torch not compiled with CUDA enabled解决方法

  • 前言:
  • 零. 环境
      • 基本环境
      • aconda问题以及解决方法
  • 一. 安装pytorch
  • 二. torch报错AssertionError: Torch not compiled with CUDA enabled解决方法 torch适配CUDA降版本、选择gpu版本最终方案
    • 报错情况
      • 报错一
      • 报错二
    • 解决办法
      • 报错RuntimeError: The NVIDIA driver on your system is too old (found version 10020).的原因
        • 你安装的torch和你的CUDA版本不匹配。
        • NVIDIA too old解决办法
        • 不过你可能会碰到的问题有:
      • 这就是第二个报错了。
        • 报错AssertionError: Torch not compiled with CUDA enabled的原因
        • 具体方法就接上我最终的解决方案了:
          • 具体解决方法
  • 三. conda安装GPU版pytorch,结果却是cpu版本[找到问题根源,从容解决]
    • 一、问题描述
    • 二、网上解决方案罗列【此节为反面方案罗列!!!】
        • 解决方案一:卸载`pytorch-mutex`
        • 解决方案二:卸载`cpuonly`
        • 解决方案三:卸载`numpy`,哦呵…
    • 三、发现的根本原因[独家]
      • 3.1 pytorch文件命名格式
      • 3.2 问题的根本原因:找不到对应GPU版本的pytorch文件,所以conda就用CPU替代了=v=
      • 3.3 解决方案
    • 四. 问题
      • 1. 我觉得删除cpuonly和pytorch-mutex还是有用吧,我是同样的命令,同样的源,就是删了这两个就从cpu变gpu了
      • 2. 博主讲的太好了,终于明白是怎么一回事了表情包。还有个疑问,我也遇到像您一样的问题,源中没有匹配的py/cuda/torch版本,请问电脑cuda安装的是11.6版本,可以为了python3.6安装cudatoolkit11.3版本的pytorch吗?即cudatoolkit版本可以比cuda版本低吗?提前感谢!
      • 3. 博主我有个问题,您的torchvision的版本是从哪看来的呢?
      • 4. cuda和cudnn不是在系统里直接装的吗,这边应该不需要考虑版本匹配吧
      • 5. 可是把numpy卸载了,项目需要咋办,再下回来吗
      • 6. 楼主nb!!!有个问题就是为什么官方源里面会找不到?连官方源都不全,那要他何用
      • 7. 我尝试在虚拟环境中使用pip安装pytorch GPU版本, 因为pip方式可用的torch组合比conda方式更多. 我的做法如下:
      • 8. 在[这里](https://pytorch.org/get-started/previous-versions/)搜你项目需要的cuda、python然后安装gpu版本吧
      • 9. 楼主你好,conda中安装了cuda,那么系统还需要安装cuda吗
      • 10. 老哥神中神!我把linux改成win64也装成功了表情包
      • 11. 我是在官网安装时候碰到的这个问题,而且是隔段时间会发生一次。看了老哥的整理,大概原因我弄懂了。是每次pytorch官网发布新版本之后,之前旧版本的安装命令就找不到对应的cuda版本了,然后被conda小可爱装了cpu版本。所以可用的方法是在旧版本的搜索页这里,找对应的安装命令就好了。 [网页链接](https://pytorch.org/get-started/previous-versions/)
      • 12. 问问博主,清华源中有py3.9+torch2.0.0+cuda11.8的包,但还是装CPU版
      • 13. 为什么那个cuda11.3对应的cudnn8.0安装不了呀
      • 14. 这个是windows系统吗
      • 15. 我也补充一个,conda命令安装pytorch,如果建的环境里面python版本过低,pytorch是要降级的(这俩也有对应关系,conda按照最高能满足python版本的标准安装的pytorch,装不上高版本就会放低)
      • 16. widnows系统的记得把linux-64改成win-64就行了
      • 17. torchvision如何确定?
      • 18. 确实,是看源里有没有gpu版的。看过另一个帖子,同样的torch,都是清华源,windows下就只有cpu版,Linux就有gpu。
  • 四. 【已解决】conda安装pytorch总是安装cpu版本的




前言:

二. torch报错AssertionError: Torch not compiled with CUDA enabled解决方法 torch适配CUDA降版本、选择gpu版本最终方案

有些乱,可以选择性观看(阅读)

零. 环境

基本环境

Python&aconda系列:

Python&aconda系列:Anacond、Miniconda的下载安装配置教程详解

python&anconda系列(亲测有效):window11系统CUDA、cuDNN 安装以及环境变量配置

aconda问题以及解决方法

Python&aconda系列:

python&anconda系列:Invoke-Expression ,Invoke-Expression -Command $activateCommand或power shell激活虚拟环境报错失

python&anconda系列:无法加载文件C:\Users\xxx\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本

python&anconda 系列:ValueError: greenlet.greenlet size以及keras保存的h5模型加载时出现“AttributeError: ‘str‘ object

Python&aconda系列:启动Anaconda,一直卡在loading applications或弹出There is an instance of anaconda navigator alr

Python&aconda系列:关于Anaconda:conda在Powershell上激活(assert last_idx is not None)

Python&aconda系列:Conda更新安装包、更新anaconda所有最新版库、解决conda安装更新失败问题

Python&aconda系列:【python环境搭建】conda 安装过程中无法激活 python 虚拟环境问题

Python&aconda系列:Unable to create process using ‘D:\Anaconda3\python.exe D:\Anaconda3\Scripts\conda-s

Python&aconda系列:conda创建虚拟环境、切换环境 报错

Python&aconda系列:conda踩坑记录1.An unexpected error has occurred. Conda has prepared the above report

Python&aconda系列:conda踩坑记录2.UnsatisfiableError: The following specifications were found to be incompa

Python&aconda系列:conda踩坑总结(deeptools 篇)

Python&aconda系列:cmd/powershell/anaconda prompt提示“系统找不到指定的路径”(亲测有效)

一. 安装pytorch

进入pytorch官网

根据安装的 CUDA版本号 ,分为 condawheel

Python&anconda系列(亲测有效):安装pytorch以及报错AssertionError: Torch not compiled with CUDA enabled解决方法_第1张图片
Python&anconda系列(亲测有效):安装pytorch以及报错AssertionError: Torch not compiled with CUDA enabled解决方法_第2张图片

pip install torch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 --index-url https://download.pytorch.org/whl/cu118

conda install pytorch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 pytorch-cuda=11.8 -c pytorch -c nvidia

等待安装完就可以正常使用了

如果遇到AssertionError: Torch not compiled with CUDA enabled问题,接着往下看

二. torch报错AssertionError: Torch not compiled with CUDA enabled解决方法 torch适配CUDA降版本、选择gpu版本最终方案

报错情况

报错一

在任意python文件下运行这几行命令

print("是否可用:", torch.cuda.is_available())        # 查看GPU是否可用
print("GPU数量:", torch.cuda.device_count())        # 查看GPU数量
print("torch方法查看CUDA版本:", torch.version.cuda)  # torch方法查看CUDA版本
print("GPU索引号:", torch.cuda.current_device())    # 查看GPU索引号
print("GPU名称:", torch.cuda.get_device_name(1))    # 根据索引号得到GPU名称

输出、报错如下:

是否可用: True
...
RuntimeError: The NVIDIA driver on your system is too old (found version 10020).

然后在尝试降版本后出现第二个报错:

报错二

同样的命令

print("是否可用:", torch.cuda.is_available())        # 查看GPU是否可用
print("GPU数量:", torch.cuda.device_count())        # 查看GPU数量
print("torch方法查看CUDA版本:", torch.version.cuda)  # torch方法查看CUDA版本
print("GPU索引号:", torch.cuda.current_device())    # 查看GPU索引号
print("GPU名称:", torch.cuda.get_device_name(1))    # 根据索引号得到GPU名称

输出结果:

是否可用: False
...
AssertionError: Torch not compiled with CUDA enabled

解决办法

首先命令行输入nvidia-smi,查看CUDA版本:

nvidia-smi

查看得到结果:

Python&anconda系列(亲测有效):安装pytorch以及报错AssertionError: Torch not compiled with CUDA enabled解决方法_第3张图片

得到服务器的CUDA版本为10.2.

然后去torch官网中查看老版本CUDA适配的torch版本:

https://pytorch.org/get-started/previous-versions/

Python&anconda系列(亲测有效):安装pytorch以及报错AssertionError: Torch not compiled with CUDA enabled解决方法_第4张图片

下面就要在镜像源中找到这样的torch版本:1.12.1以及适配gpu

比如我们在北外的torch镜像源中找:

https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

我们是linux版本,就选linux:
Python&anconda系列(亲测有效):安装pytorch以及报错AssertionError: Torch not compiled with CUDA enabled解决方法_第5张图片

看到了如下的:

这就是我们要找的。右键点击蓝字,‘右键’-‘复制链接地址’,得到下载链接,直接用这个包安装pytorch:

conda install https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/linux-64/pytorch-1.12.1-py3.8_cuda10.2_cudnn7.6.5_0.tar.bz2

然后用以下命令,自动安装适配的依赖包:

conda install pytorch

这样就安装成功了,再次调用以上python命令测试CUDA:

print("是否可用:", torch.cuda.is_available())        # 查看GPU是否可用
print("GPU数量:", torch.cuda.device_count())        # 查看GPU数量
print("torch方法查看CUDA版本:", torch.version.cuda)  # torch方法查看CUDA版本
print("GPU索引号:", torch.cuda.current_device())    # 查看GPU索引号
print("GPU名称:", torch.cuda.get_device_name(1))    # 根据索引号得到GPU名称

得到结果:

True
2
10.2
0
Tesla T4

torchvision也是同理:

conda install https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/linux-64/torchvision-0.13.1-py38_cu102.tar.bz2
conda install torchvision

然后具体介绍一下这几个报错,这样也把我一路摸着石头过河的经历给复述一下。

报错RuntimeError: The NVIDIA driver on your system is too old (found version 10020).的原因

你安装的torch和你的CUDA版本不匹配。

比如我的环境中就是10.2的CUDA和1.13.0(或者1.13.1,反正是1.13版本)的pytorch冲突了。

NVIDIA too old解决办法
  1. 降低pytorch版本。

  2. 升级CUDA。

解决办法很多,可以参考网上其他文章。本文重点在第二个报错Torch和CUDA的编译(compile)问题,因为我自己是使用学校的机房,没权限升级CUDA,所以介绍一下我尝试过的第一个办法,降低pytorch版本:

你在看这一段时,会发现前面和我最终的解决方法是一样的,但后面不同的方法让我走了弯路。

首先确定你的CUDA版本,在Linux命令行终端中输入nvidia-smi:

nvidia-smi

查看得到结果:

Python&anconda系列(亲测有效):安装pytorch以及报错AssertionError: Torch not compiled with CUDA enabled解决方法_第6张图片

得到服务器的CUDA版本为10.2.

然后去torch官网中查看老版本CUDA适配的torch版本:

https://pytorch.org/get-started/previous-versions/

Python&anconda系列(亲测有效):安装pytorch以及报错AssertionError: Torch not compiled with CUDA enabled解决方法_第7张图片
好了,到这一步,你可能就会按照它上面的操作,安装这几个版本的库了。

conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=10.2 -c pytorch
不过你可能会碰到的问题有:
  • 某个包版本不匹配当前python版本

  • 某个包版本和其他包冲突

  • 某个包安装的版本和CUDA版本不匹配

可能你改进了第一、二个问题,终于把整套pytorch、torchvision下下来了,但你还是要面对第三个问题,就是继而报错AssertionError: Torch not compiled with CUDA enabled,不过我一步步介绍我的经历,先看看如何面对第一和第二个问题的:

自己调试去安装,我试过,最后还是选择了使用如下命令:

conda install --override-channels -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ pytorch torchvision cudatoolkit=10.2

这条命令是说,指定使用镜像源https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/,指定cudatoolkit版本适配10.2的CUDA,然后根据这个适配,下载pytorch包和torchvision包。

下载好了,尝试代码,你会得到:

print("是否可用:", torch.cuda.is_available())        # 查看GPU是否可用
print("GPU数量:", torch.cuda.device_count())        # 查看GPU数量
print("torch方法查看CUDA版本:", torch.version.cuda)  # torch方法查看CUDA版本
print("GPU索引号:", torch.cuda.current_device())    # 查看GPU索引号
print("GPU名称:", torch.cuda.get_device_name(1))    # 根据索引号得到GPU名称

(输出结果:)

是否可用: False
...
AssertionError: Torch not compiled with CUDA enabled

这就是第二个报错了。

报错AssertionError: Torch not compiled with CUDA enabled的原因

而第二个报错则是因为你安装的torch是cpu版本的。比如你可以在你的conda环境下查找torch版本:

conda list | grep torch

结果如下:

(base) weinz@dlp01:~$ conda list | grep torch
(正常使用命令无法看到下面注释的一行,为了直观显示,我粘贴过来了)
# Name                    Version                   Build  Channel
pytorch                   1.12.1          cpu_py38he8d8e81_0    https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
torchvision               0.13.1          cpu_py38h164cc8f_0    https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main

其中包版本号Version后面的Build列,就能看到torch适配的是cpu版本。

发现问题后,改成gpu版本的就可以了。

具体方法就接上我最终的解决方案了:
具体解决方法

首先回顾一下我们需要的torch版本:

Python&anconda系列(亲测有效):安装pytorch以及报错AssertionError: Torch not compiled with CUDA enabled解决方法_第8张图片

在镜像源中找到1.12.1以及适配gpu的pytorch、torchvision

进入镜像源https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

这就是我们要找的。右键-复制链接地址,直接用这个包安装pytorch:

conda install https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/linux-64/pytorch-1.12.1-py3.8_cuda10.2_cudnn7.6.5_0.tar.bz2

可以查看一下,这样下载的是否是gpu版本的。输入查找命令:

conda list | grep torch

得到结果:
在这里插入图片描述

可以看到,显示的是cuda,这个就是gpu版本的了。

然后用以下命令,自动安装适配的依赖包:

conda install pytorch

这样就安装成功了,再次调用以上python命令测试CUDA:

print("是否可用:", torch.cuda.is_available())        # 查看GPU是否可用
print("GPU数量:", torch.cuda.device_count())        # 查看GPU数量
print("torch方法查看CUDA版本:", torch.version.cuda)  # torch方法查看CUDA版本
print("GPU索引号:", torch.cuda.current_device())    # 查看GPU索引号
print("GPU名称:", torch.cuda.get_device_name(1))    # 根据索引号得到GPU名称

得到结果:

True
2
10.2
0
Tesla T4

torchvision也是同理:

conda install https://mirrors.bfsu.edu.cn/anaconda/cloud/pytorch/linux-64/torchvision-0.13.1-py38_cu102.tar.bz2
conda install torchvision

总结

看着网上的文章,还有问chatGPT,一步步解决了这个问题,还是值得的。

有的方法在选择gpu版本的时候,选择这样:

conda install -c 镜像源 后面调试版本
conda install -c 'http...' pytorch=1.12.1 torchvision=0.13.0 cudatoolkit=10.2
conda install -c 'http...' pytorch=1.9.1 torchvision=0.8.0 cudatoolkit=10.2


一步步调版本,我在调的时候发现太搞了,而且试出来下好配套的了,可能下的也是cpu版本的。

具体可参考这篇文章:

. conda安装GPU版pytorch,结果却是cpu版本[找到问题根源,从容解决]

可能更了解镜像源内部选择的方式,会有更好的解决方法。不过在此之前,这种直接下载你需要的版本然后让镜像源给你补依赖包才是最高效的方法。

三. conda安装GPU版pytorch,结果却是cpu版本[找到问题根源,从容解决]

一、问题描述

按照pytorch官网安装pytorch GPU版本,结果却是CPU版本。

Python&anconda系列(亲测有效):安装pytorch以及报错AssertionError: Torch not compiled with CUDA enabled解决方法_第9张图片

我的倔脾气,嘿!反反复复安装、卸载个五、六、七、八 遍。才意识到再操作一遍也是一样的结果。

二、网上解决方案罗列【此节为反面方案罗列!!!】

还是上网搜索:

Python&anconda系列(亲测有效):安装pytorch以及报错AssertionError: Torch not compiled with CUDA enabled解决方法_第10张图片

结果发现,遇到和我同样问题的还不少。

我发现大家的解决办法不相同,大致如下:

解决方案一:卸载pytorch-mutex

Python&anconda系列(亲测有效):安装pytorch以及报错AssertionError: Torch not compiled with CUDA enabled解决方法_第11张图片

解决方案二:卸载cpuonly

Python&anconda系列(亲测有效):安装pytorch以及报错AssertionError: Torch not compiled with CUDA enabled解决方法_第12张图片

解决方案三:卸载numpy,哦呵…

Python&anconda系列(亲测有效):安装pytorch以及报错AssertionError: Torch not compiled with CUDA enabled解决方法_第13张图片

如果继续往下看,你或许明白上面的方案的确能解决问题。但是,这种神秘性以及某种被约束的感觉真的不是太好。上面这些方案,其实就是瞎猫碰上死耗子!!! 他们能起作用本身就是一个BUG。

程序员的诡异操作,写的代码莫名其妙运行起来了。。

想知道这个问题产生的根本原因以及根本解决方案,那么请继续跟着我一起往下看吧…

三、发现的根本原因[独家]

3.1 pytorch文件命名格式

首先介绍一个pytorch的文件名的普通命名格式。

一个在python=3.7conda 环境下,cudatoolkit=10.1版本的pytorch=1.7.0的文件名为:pytorch-1.7.0-py3.7_cuda10.1.243_cudnn7.6.3_0.tar.bz2

一个在python=3.7conda 环境下,CPU版本的pytorch=1.7.0的文件名为pytorch-1.7.0-py3.7_cpu_0.tar.bz2

从上可以看出,不同的python版本,GPU/CPU,若是GPU版本,则cudatoolkit的版本,再加上pytorch的版本,唯一指定一个pytorch安装文件。

明白这个,我们再继续往下。

3.2 问题的根本原因:找不到对应GPU版本的pytorch文件,所以conda就用CPU替代了=v=

先说一下问题产生的根本原因:指定某一版本cudatoolkit下的指定版本的pytorch不在源(国内conda镜像源因外源)中,导致某一版本cudatoolkit下的指定版本的pytorch无法被conda install找到,然而不凑巧的是,源中却有指定版本的pytorch,不过它是CPU版本。那么,conda install这个小机灵鬼自作主张的替你安装了这个版本。结果就是,你觉得明明安装的是GPUpytorch,可是像是有种神秘力量让你最终得到的总是cpupytorch

例子1:

conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

-c pytorch是指在官方源里找库。此时,如果conda官方源里没有(或者由于网络问题无法访问官方源)cudatoolkit=11.3对应的GPUpytorch,而此时conda install又找到一个CPU版的pytorch,那么结果是,它给你安装了这个cpu版的pytorch

例子2:

conda create -n pytorch-GPU python=3.7 # 创建一个python3.7的conda环境
conda activate pytorch-GPU # 进入该conda环境
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ # 换conda源
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ # 换conda源
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ # 换conda源
conda install cudatoolkit=10.0 -c http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/ # 安装 cuda
conda install cudnn=7.6 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/ # 安装cudnn
conda install pytorch==1.7.0 torchvision==0.8 cudatoolkit=10.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/# 安装pytorch

我想通过国内的镜像源来安装cudatoolkit=10.0版本的pytorch==1.7.0,结果我发现安装的还是cpu版本。我在https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/上发现,原来镜像源里根本没这个文件。于是,conda install这个小机灵鬼又自作主张的给我装了cpu版本的文件pytorch-1.7.0-py3.7_cpu_0.tar.bz2,它给我装的文件python版本相同,pytorch版本相同,唯一不同的就是CPU/GPU

Python&anconda系列(亲测有效):安装pytorch以及报错AssertionError: Torch not compiled with CUDA enabled解决方法_第14张图片

此处需要指出,若采用官方命令conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch,安装的是pytorch==1.4.0版本,此版本在from torch.cuda.amp import GradScaler, autocast时会报错from torch.cuda.amp import GradScaler, autocast。网上说是1.4版本太低,换1.7就好了。

3.3 解决方案

我们安装前先要确定源中是否真的有我们组合出来的版本,[python|cudatoolkit|pytorch]这三个版本不同的组合,真的不一定有。

例如,我发现根本没有满足python=3.7cudatoolkit=10.0以及pytorch=1.7.0的版本,但是在镜像源中,我发现有python=3.7cudatoolkit=10.1以及pytorch=1.7.0在这里插入代码片的版本,于是用以下命令安装:

conda create -n pytorch-GPU python=3.7 # 创建一个python3.7的conda环境
conda activate pytorch-GPU # 进入该conda环境
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ # 换conda源
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ # 换conda源
conda config --add channels http://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ # 换conda源
conda install cudatoolkit=10.1 -c http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/ # 安装 cuda
conda install cudnn=7.6 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/ # 安装cudnn
conda install pytorch==1.7.0 torchvision==0.8 cudatoolkit=10.1 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/# 安装pytorch

仔细看下图的倒数第5行,我们发现,conda install找到对应的gpu版本,此时,它便不好去自作主张了,乖乖地给我安装gpu版本吧。

Python&anconda系列(亲测有效):安装pytorch以及报错AssertionError: Torch not compiled with CUDA enabled解决方法_第15张图片

四. 问题

1. 我觉得删除cpuonly和pytorch-mutex还是有用吧,我是同样的命令,同样的源,就是删了这两个就从cpu变gpu了

  • 没有说它没有用啊,你想弄懂为什么他会有用就仔细看博客吧。不想的话,当我没说。哦,还有,通过删除cpuonly或pytorch-mutex来让conda卸载原CPU版pytorch后自动装GPU版pytorch,可行的前提是你要接受conda默认给你装的版本。像我就是默认装的1.4版本中Pytorch有些库没有,需要安装更高版本。再者,你难道就不想知道为什么?=v= 不想的话,那也当我没说。

    总结一下,本文 方法的好处是
    1)弄懂为什么;
    2)我自己可指定想安装的版本,而不是让conda被动的安装默认版本。

  • 为什么我win10的卸载掉pytorch-mutex再安装上没有用啊,还是cpu版本的,然后按照作者的方法,成功了

  • pytorch-mutex删除之后直接就把pytorch清空了啊。。。

2. 博主讲的太好了,终于明白是怎么一回事了表情包。还有个疑问,我也遇到像您一样的问题,源中没有匹配的py/cuda/torch版本,请问电脑cuda安装的是11.6版本,可以为了python3.6安装cudatoolkit11.3版本的pytorch吗?即cudatoolkit版本可以比cuda版本低吗?提前感谢!

  • 可以的,以我为例,我是ubuntu 18.04,系统层面安装的cuda 11.3,在conda env中安装的是python 3.7, cuda 10.1版本的pytorch=1.7,这两个不会互相干扰

3. 博主我有个问题,您的torchvision的版本是从哪看来的呢?

  • 还有conda清华源地址里面您安装cuda,cudnn和pytorch时分别选择了free, main和cloud三个不同的网址,这几个源网址有啥区别呢?我怎么知道该用哪个网址安装对应的库呢?谢谢

  • 我在网上搜的版本对应表,你也搜一下看看

4. cuda和cudnn不是在系统里直接装的吗,这边应该不需要考虑版本匹配吧

  • 为了省事,都会给对应的版本pytorch装对应的cuda和cudnn

5. 可是把numpy卸载了,项目需要咋办,再下回来吗

  • install 回来

  • 不是,你卸载Numpy干嘛?

  • 你解决方案三不是自己说卸载numpy?

  • 那是网上方案罗列!!!我的方案在第三节。

6. 楼主nb!!!有个问题就是为什么官方源里面会找不到?连官方源都不全,那要他何用

  • 官方源也是把常用的情况组合了,不可能把所有的都组合一遍,那样会很庞大,也没必要。pytorch已经算是好的了,至少还没有变态到一个新出的版本只与某一固定版本的python一一绑定。

7. 我尝试在虚拟环境中使用pip安装pytorch GPU版本, 因为pip方式可用的torch组合比conda方式更多. 我的做法如下:

  1. 激活环境: conda activate 虚拟环境名
  2. 查看pip环境: which -a pip
  3. 通过使用绝对路径指定特定虚拟环境中的pip安装(否则可能装到base环境中), 绝对路径一般格式为 ***/anaconda/envs/虚拟环境名/bin/pip
  4. 在pytorch官网->previos pytorch version中找到适配你cuda版本的pytorch版本, 然后在wheel关键字下找到对应的pip指令, 将其中的pip替换为(步骤3)描述的绝对路径然后安装即可.

8. 在这里搜你项目需要的cuda、python然后安装gpu版本吧

nvidia-smi上方的cuda版本和你安装的nvcc -V版本可以不一样。另外安装好后别忘了去/usr/local/ 把cuda的软连接改成对应的版本并且source ~/.bashrc重新激活cuda环境

9. 楼主你好,conda中安装了cuda,那么系统还需要安装cuda吗

  • 你出现cpu就是因为你原先的cuda可能太新了不匹配,所以还是搁新环境里安个新的吧

10. 老哥神中神!我把linux改成win64也装成功了表情包

  • 哈哈,以不变应万变,心里有底,啥变化也不怕了是不

  • 你好,请问是直接把命令中的linux-64换成win-64吗?

  • 兄弟,我爱死你了,今天搞了一天,卸载了anaconda,pycharm和python,然后照着B站视频一步一步来,但每次都是装到cpu,也看了好多文章,都没有解决,最后我配个python3.7环境,按照你这方法,然后ture了。之前用的python3.9环境,中途就会卡住。超级感谢

11. 我是在官网安装时候碰到的这个问题,而且是隔段时间会发生一次。看了老哥的整理,大概原因我弄懂了。是每次pytorch官网发布新版本之后,之前旧版本的安装命令就找不到对应的cuda版本了,然后被conda小可爱装了cpu版本。所以可用的方法是在旧版本的搜索页这里,找对应的安装命令就好了。 网页链接

  • 谢谢,解决了

  • 我就是在这个页面找的,然后选的明明是1.90pytorch+11.3cuda,结果自己给我装了cpu-only

  • 老哥牛逼,我直接给你上香

12. 问问博主,清华源中有py3.9+torch2.0.0+cuda11.8的包,但还是装CPU版

  • 用的源是清华源吗?

  • pytorch-2.0.1-py3.10_cuda11.8 我是这个,装了之后也是cpu,

  • cudnn8.7.0,cudnn装这个版本的。

  • 是,抱歉一直没看到,清华源好像没有cudnn8.7.0的包

  • 我用的pytorch-2.0.1-py3.11_cuda11.8清华源,也是cpu版

  • 会不会是cudnn的版本问题呢

13. 为什么那个cuda11.3对应的cudnn8.0安装不了呀

  • 源里的文件名是cudnn8.0吗?

  • 是的

  • cudnn8.2

  • 主要是说那个路径没有那个,之前安装8.3没安装上,我才换的其他版本

  • 你看清楚哈,所有版本我没看到8.0,有8.2与8.3

    • 那可能不行,一定要配上

  • 我用的是win64,安装的是pytorch1.12.0,py3.9,cuda对应的是11.3 时间是2022-06-28 05:08

  • 充分发挥好奇心呀,这是一个好问题。加油

  • pytorch 1.12.0 py3.9 cuda11.3,cudnn8_0

14. 这个是windows系统吗

  • 本篇实验的系统是ubuntu,不过windows也适作,只不过找到windows对应的源地址

15. 我也补充一个,conda命令安装pytorch,如果建的环境里面python版本过低,pytorch是要降级的(这俩也有对应关系,conda按照最高能满足python版本的标准安装的pytorch,装不上高版本就会放低)

16. widnows系统的记得把linux-64改成win-64就行了

  • 你好大佬,请问一下每个linux-64都要改成win-64嘛?还是只有最后一条

17. torchvision如何确定?

  • 看你python版本和cudatool版本,py37就是python3.7,cu102就是cudatoolkit10.2

18. 确实,是看源里有没有gpu版的。看过另一个帖子,同样的torch,都是清华源,windows下就只有cpu版,Linux就有gpu。

帖子: 网页链接

四. 【已解决】conda安装pytorch总是安装cpu版本的

使用conda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidia安装pytorch,执行import torch; torch.cuda.is_available()总是显示false,是因为安装了cpu版本的pytorch

参考这篇文章(即 三. conda安装GPU版pytorch,结果却是cpu版本[找到问题根源,从容解决])的解释,conda在源里找不到gpu版本的会给你安装一个cpu版本的。

但是上面那篇文章安装的pytorch的版本太低了

所以推荐别用conda安装,而是用pip安装

Python&anconda系列(亲测有效):安装pytorch以及报错AssertionError: Torch not compiled with CUDA enabled解决方法_第16张图片

Python&anconda系列(亲测有效):安装pytorch以及报错AssertionError: Torch not compiled with CUDA enabled解决方法_第17张图片







zrc007007

torch报错AssertionError: Torch not compiled with CUDA enabled解决方法 torch适配CUDA降版本、选择gpu版本最终方案

windSeS

conda安装GPU版pytorch,结果却是cpu版本[找到问题根源,从容解决]

BugRecorder

【已解决】conda安装pytorch总是安装cpu版本的

你可能感兴趣的:(#,python,python,pytorch,开发语言)