☰
torch.cuda.is_available() 返回 False 的常见原因及解决方法
2026/10/3 2:42:34 网站建设 项目流程

torch.cuda.is_available() 返回 False 的常见原因及解决方法

在使用 PyTorch 训练模型时,很多人会先通过下面这行代码检查 GPU 是否可用:

importtorchprint(torch.cuda.is_available())

如果输出:

False

说明当前 PyTorch 没有正常使用 CUDA。

这个问题比较常见,通常和 PyTorch 版本、CUDA 环境、显卡驱动或者安装方式有关。

一、先检查电脑是否有 NVIDIA 显卡

打开 CMD,执行:

nvidia-smi

如果可以正常显示显卡型号、驱动版本、显存占用等信息,说明 NVIDIA 驱动基本正常。

如果提示:

'nvidia-smi' 不是内部或外部命令

或者无法识别显卡,那么优先检查 NVIDIA 驱动是否安装正确。

二、检查 PyTorch 是否安装了 CUDA 版本

运行:

importtorchprint(torch.__version__)print(torch.version.cuda)print(torch.cuda.is_available())

例如:

2.5.1+cu121 12.1 True

表示安装的是支持 CUDA 12.1 的 PyTorch。

如果:

print(torch.version.cuda)

输出:

None

那么大概率安装的是 CPU 版本 PyTorch。

此时即使电脑有 NVIDIA 显卡:

torch.cuda.is_available()

依然会返回:

False

三、检查是否误装了 CPU 版本 PyTorch

可以使用:

pip show torch

查看当前 PyTorch 信息。

如果之前直接执行:

pipinstalltorch

某些环境下可能安装到不符合预期的版本。

可以先卸载:

pip uninstall torch torchvision torchaudio

然后根据自己的环境重新安装 CUDA 对应版本。

安装完成后再次测试:

importtorchprint(torch.cuda.is_available())

四、检查 NVIDIA 驱动

执行:

nvidia-smi

通常可以看到:

Driver Version CUDA Version

需要注意:

nvidia-smi中显示的 CUDA Version 并不代表你一定安装了对应版本的 CUDA Toolkit。

它主要表示当前显卡驱动最高支持的 CUDA 版本。

PyTorch 是否能够使用 GPU,最终还是要看:

torch.version.cuda

以及:

torch.cuda.is_available()

五、检查当前 Python 环境

如果电脑中安装了多个 Python 或 Conda 环境,很容易出现:

PyTorch 明明安装了 CUDA 版本,但是当前运行代码的环境并不是那个环境。

可以执行:

where python

Windows 下可以查看当前 Python 路径。

如果使用 Conda:

condaenvlist

检查当前激活的环境。

例如:

conda activate pytorch

然后再运行:

python

进入 Python:

importtorchprint(torch.cuda.is_available())

六、IDEA 或 PyCharm 使用了错误解释器

有时候终端中执行:

torch.cuda.is_available()

返回:

True

但是在 PyCharm 或 IDEA 中运行却返回:

False

这通常不是 CUDA 问题,而是 IDE 使用了另外一个 Python 环境。

需要检查项目解释器是否和终端中的环境一致。

例如 Conda 环境路径可能类似:

Anaconda3/envs/pytorch/python.exe

确保 IDE 使用的是安装了 GPU 版 PyTorch 的解释器。

七、检查 CUDA 设备数量

可以运行:

importtorchprint(torch.cuda.device_count())

如果输出:

0

说明 PyTorch 当前没有检测到可用 CUDA 设备。

如果输出:

1

说明检测到了 1 张 GPU。

还可以查看显卡名称:

print(torch.cuda.get_device_name(0))

例如:

NVIDIA GeForce RTX 4060 Laptop GPU

八、完整检测代码

可以直接运行下面这段代码:

importtorchprint("PyTorch版本:",torch.__version__)print("CUDA版本:",torch.version.cuda)print("CUDA是否可用:",torch.cuda.is_available())print("GPU数量:",torch.cuda.device_count())iftorch.cuda.is_available():print("当前GPU:",torch.cuda.get_device_name(0))

正常情况下可能输出:

PyTorch版本: 2.5.1+cu121 CUDA版本: 12.1 CUDA是否可用: True GPU数量: 1 当前GPU: NVIDIA GeForce RTX 4060 Laptop GPU

九、代码中正确使用 GPU

即使:

torch.cuda.is_available()

返回 True,也需要把模型和数据移动到 GPU。

一般写法:

device=torch.device("cuda"iftorch.cuda.is_available()else"cpu")

然后:

model=model.to(device)

数据同样需要移动:

x=x.to(device)y=y.to(device)

否则模型依然可能运行在 CPU 上。

十、常见问题总结

1.torch.version.cuda是 None

说明当前 PyTorch 很可能是 CPU 版本。

解决:

重新安装支持 CUDA 的 PyTorch。

2.nvidia-smi无法运行

一般先检查:

  • NVIDIA 显卡驱动
  • 驱动是否正确安装
  • 系统是否识别显卡

3. CMD 中是 True,PyCharm 中是 False

大概率是:

Python解释器不一致

检查 PyCharm 当前解释器。

4. GPU 能识别但程序还是跑 CPU

检查是否执行:

model.to(device)

以及:

data.to(device)

总结

如果:

torch.cuda.is_available()

返回:

False

可以按照下面顺序排查:

1. nvidia-smi 检查显卡和驱动 2. torch.version.cuda 检查 PyTorch CUDA 版本 3. 检查是否安装了 CPU 版 PyTorch 4. 检查 Python / Conda 环境 5. 检查 PyCharm 或 IDEA 解释器 6. 重新安装匹配的 PyTorch CUDA 版本

大多数情况下,问题都出在:

PyTorch版本不对

或者:

当前使用的Python环境不对

确认环境一致之后,通常就可以正常使用 GPU。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询