当前位置:   article > 正文

解决AssertionError Torch not compiled with CUDA enabled问题_assertionerror: torch not compiled with cuda enabl

assertionerror: torch not compiled with cuda enabled

解决AssertionError: Torch not compiled with CUDA enabled问题

一、前言

考虑到:①pycharm比Spyder功能全面,②anaconda的环境配置方便,这两个因素,所以想要在pycharm 上引入conda environment,充分利用Anaconda的库函数。

但是pycharm导入Anaconda环境后,运行程序,报错,AssertionError: Torch not compiled with CUDA enabled

二、分析问题

1.查看报错含义

20210814112318

报错含义是,在编译torch的时候,CUDA并没有起作用。

但在此之前,我已经成功安装CUDA和Pytorch,并在Anaconda prompt终端下成功进行了检验,我所安装的Pytorch是可以受CUDA支持的。

20210813190630

那么问题在哪里呢???

2.思考原因

①回忆之前安装Pytorch(GPU版)的时候,我首先创建了一个虚拟环境,而这个虚拟环境的作用就是隔绝外界操作,相当于构建了一个独立空间。然后,我是在这个虚拟环境内安装的Pytorch(GPU版)。

​ (安装Pytorch参考文章:https://blog.csdn.net/qq_46941656/article/details/119682944?spm=1001.2014.3001.5501)

②这就意味着,我在Pycharm上引入conda environment,是没有办法使用Pytorch(GPU版)的,因为Pytorch(GPU版)已经被虚拟环境隔离了。

为了确认上述猜想,我需要检查Anaconda prompt 的基本环境中,是否装有Pytorch(GPU版)

20210814111058

经检查,在Anaconda的基本环境中没有安装Pytorch(GPU版),所以Pycharm即使引入了conda environment,也没有办法使用Pytorch(GPU版)

三、解决问题

因为意识到Anaconda的基本环境内,没有安装Pytorch(GPU版),导致Pycharm内无法使用CUDA支持的torch,所以我就打算直接在base环境中安装Pytorch(GPU版)。

1.在Anaconda prompt终端的基本环境中,运行以下指令,安装Pytorch(GPU版)

conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch
  • 1

2.安装完毕后,检验是否安装成功

20210814143743

可以看出,在Anaconda的基本环境中,成功安装上Pytorvh(GPU版)

3.再次运行Pycharm程序,却出现了新的错误

20210814102029

新的错误Key already registered with the same priority : GroupSpatialSoftmax

20210814144053

错误原因应该是pycharm的编译环境内,存在多个torch文件,它们在运行程序的优先级上起了冲突

4.解决优先级冲突问题

step1:

删除Anaconda所安装的Pytorch(GPU版),包括Anaconda基本环境,Pytorch虚拟环境,Anaconda Navigator上所有的Pytorch文件

a.在Anaconda prompt终端下删除Pytorch(GPU版),命令如下

conda remove --name pytorch --all
  • 1

b.在Pytorch虚拟环境中删除Pytorch(GPU版),命令如下

conda activate pytorch   #激活pytorch虚拟环境,此处pytorch指的是当初创建的pytorch虚拟环境名称
conda remove --name pytorch --all   #删除虚拟环境内的pytorch(GPU)版
conda deactivate      #关闭虚拟环境
  • 1
  • 2
  • 3

c.在Anaconda navigator上删除Pytorch(GPU版)

在Anaconda 的installed范围内,搜索pytorch,去掉勾选,进行删除

20210814101822

20210814101839

step2:

删除Pycharm安装的Pytorch(GPU版),命令如下

pip uninstall torch
  • 1

此时,在Pycharm上运行python程序已经没有优先级冲突问题,但还是没法使用Pytorch,我们需要重新安装Pytorch(GPU版)

5.重新安装Pytorch(GPU版)

将Anaconda和Pycharm中pytorch(GPU版)删除干净后,再进入Anaconda prompt的终端下,重新安装Pytorch(GPU版),命令如下

conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch
  • 1

安装完毕后,在Pycharm上再次运行python程序,已经不再报错:AssertionError: Torch not compiled with CUDA enabled

说明Pycharm可以使用CUDA支持的pytorch了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/71796
推荐阅读
相关标签
  

闽ICP备14008679号