不同虚拟环境torch.cuda.is_available()返回False
背景:
今天在学bert的过程中,本着每一个项目都用虚拟环境隔开的原则,创建了新的conda环境,可是在新环境中,cuda却无法使用,切换其他环境torch.cuda.is_available()是可以正常True的。

原因分析:
使用conda list调出新环境、就环境的包版本
旧环境

新环境

我是用一下指令下载的,省略了-c及后面的(带-c pytorch会使用pytorch官方指定的源,国内下载较卡,而我此前已换清华源)
conda install pytorch torchvision torchaudio cudatoolkit=11.3

不过前几天由于各种原因也搞过CPU版的pytorch,可能由于这个原因,conda install的时候首先考虑本地有没有缓存,而这个时候把CPU版的当缓存载入了新环境。
我们查看conda的缓存目录

将cpu的那个pytorch删除,再次安装,结果还是不行。
后来上网搜寻资料,觉得是清华源有问题。使用官方源下载
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

重新安装后,一切正常。