pytorch运行报错:assertionerror: torch not compiled with cuda enabled
问题描述
本人使用python3.8 运行pytorch 1.2.0代码时报错,conda中安装的相关包如下:
装的似乎是CPU版本的。这里着重注意有一个cpu版本的pytorch-mutex包,它相当于一个锁,让你只能下载pytorch的cpu版本
用conda卸载pytorch。conda remove pytorch
再装一个cuda版本的,本人电脑上装了两个cuda 11.6和11.8。
从官网看到了 之前release的版本
发现有两种安装代码,一种conda安装,另一种是pip安装的。如下:
可以看到一个是torch== 1.13.1后面没有说明cpu或cuda的,但是额外安装了一个pytorch-cuda=11.6。 另一种是 torch == 1.13.1+cu116。
本人选择第一种conda装pytorch-cuda的,命令是:conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia
(-c参数是指定频道的意思)
装好后包如下:
可以看到装的是CPU的,还是运行不了。torch.cuda.is_available()
还返回False。
问题解决
可以看到上面有一个包是pytorch-mutex,还是cpu的。就是因为这个才装不了GPU版本的,要把它卸载了,再重新装pytorch。
另外还看到了conda中好像又安装了有关cuda的包。
再重装pytorch后包如下:
再运行代码就可以了。(如果numpy报错,因为pytorch的卸载与安装往往会对numpy版本做改动,可能需要先卸载numpy,再重新装对应的numpy,但要注意conda卸载numpy可能会把相关包给卸载了,可能还要重新装这些包。)