解决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.查看报错含义

解决AssertionError Torch not compiled with CUDA enabled问题_第1张图片

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

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

解决AssertionError Torch not compiled with CUDA enabled问题_第2张图片

那么问题在哪里呢???

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版)

解决AssertionError Torch not compiled with CUDA enabled问题_第3张图片

经检查,在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

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

解决AssertionError Torch not compiled with CUDA enabled问题_第4张图片

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

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

解决AssertionError Torch not compiled with CUDA enabled问题_第5张图片

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

解决AssertionError Torch not compiled with CUDA enabled问题_第6张图片

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

4.解决优先级冲突问题

step1:

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

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

conda remove --name pytorch --all

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

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

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

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

解决AssertionError Torch not compiled with CUDA enabled问题_第7张图片

解决AssertionError Torch not compiled with CUDA enabled问题_第8张图片

step2:

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

pip uninstall torch

此时,在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

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

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

你可能感兴趣的:(深度学习,python,anaconda,cuda,pycharm,pytorch)