torch.cuda.is_available() 在 (base) 中为真,但在其他 conda 环境中为假

torch.cuda.is_available() True in (base), but False in other conda env

我在 Anaconda 提示符中 运行 这段代码,它 returns 正确。

(base) C:\User
torch.cuda.is_available()
True

但是我运行其他conda环境的时候,就是不行

(pytorch_project) C:\User
torch.cuda.is_available()
False

问题似乎是 torch.version.cuda.

的不同结果

(基数)torch.version.cuda = 10.1

(pytorch_project) torch.version.cuda = 10.2

但是不知道为什么不一样...

如何使 10.2 下降到 10.1 并使 is_available() == True ?


这是我的信息。

 Windows 10 / nvidia-smi=425.31 / CUDA ver=10.1 / pytorch=1.4.0 / torchvision=0.5.0

conda list

尝试从 pytorch_project 环境中卸载 PyTorch 和 torchvision,然后以这种方式重新安装:

conda install pytorch torchvision cudatoolkit=10.1 -c pytorch

或者,如果您更喜欢 pip:

pip install torch==1.6.0+cu101 torchvision==0.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html

有关详细信息和更多选项,请参阅 https://pytorch.org/get-started/locally/

感谢您的回答和评论。 <3

我已经解决了问题。

我使用Visual Studio代码作为开发环境工具,但是如我上传的图片所示,conda list指向完全相同的目录,这意味着 我实际上并没有激活我的环境

它应该像 (pytorch) C:\User ,但它是 (Power Shell) PS C:\User 而不是。

为了解决这个问题,我去了 SettingsTerminal > Integrated > Shell Args: Windows 并用

编辑了 settings.json
"terminal.integrated.shellArgs.windows": ["-ExecutionPolicy", "ByPass", "-NoExit","-Command","& 'C:\Users\user\miniconda3\shell\condabin\conda-hook.ps1'" ]

参考:https://blog.lcarbon.idv.tw/vscode-設定-anaconda-路徑至-visual-studio-code-終端機中windows/

通过启动一个新终端,我得到了正确的 (pytorch) PS C:\User,并看到我的 torch=1.5.0 使用 conda list

那我运行conda install pytorch torchvision cudatoolkit=10.1 -c pytorch换pytorch版本

瞧!

torch.cuda.is_available()
True