您的位置首页 >人工智能 >

AssertionError Torch not compiled with CUDA enabled 报错处理优先确认 PyTorch 是 CPU 构建还是

在 PyTorch 代码里遇到 AssertionError: Torch not compiled with CUDA enabled,这个报错的本质是当前安装的 PyTorch 包是纯 CPU 版本,编译时没有开启 CUDA 支持,代码里却尝试调用.cuda ()、to ("cuda") 这类 GPU 相关接口,排查第一步就是先确认装入的 PyTorch 是 CPU 构建还是 CUDA 构建包。之所以会装错版本,大多是 pip 直接执行 pip install torch,在没有指定 CUDA 版本的情况下,pip 默认拉取 CPU 版 PyTorch;还有环境混淆、conda 和 pip 混用、复制网上通用安装命令没改 CUDA 版本号,也会出现这个问题,哪怕机器本身有 NVIDIA 显卡、驱动正常,CPU 版 PyTorch 也识别不了 GPU。整套排查修复流程,第一步运行代码打印 torch.version、torch.cuda.is_available () 确认构建版本;第二步卸载当前 CPU 版 torch;第三步去 PyTorch 官网复制对应 CUDA 版本的安装命令重新安装;第四步重启环境,再次验证 cuda 是否可用。综合来看,这个报错不等于显卡或者驱动坏了,核心是 PyTorch 安装包本身不包含 CUDA 内核,只要替换成匹配 CUDA 版本的构建包就能解决。

一、报错触发场景清单

场景说明
直接 pip install torch不带 CUDA 版本参数,默认安装 CPU 版 PyTorch
conda/pip 环境冲突一个环境里混装不同渠道的 torch,最后加载到 CPU 版本
复制旧安装命令命令里 CUDA 版本和本地驱动不匹配,或者是 CPU 包链接
虚拟环境选错多个 Python 环境,当前环境装的是 CPU 版,别的环境才有 CUDA 版
Colab / 服务器换内核切换运行时内核后,内核自带的 torch 为 CPU 构建

二、快速校验代码片段

import torch

print(torch.__version__)

print(torch.version.cuda) CUDA构建会输出版本,CPU版为None

print(torch.cuda.is_available())

判断规则:torch.version.cuda 输出 None → CPU 构建;有版本号(如 12.4)→ CUDA 构建。

三、分步排查操作

  1. 执行校验代码,确认当前 PyTorch 是 CPU 构建还是 CUDA 构建
  2. 如果是 CPU 版,卸载现有 torch、torchvision、torchaudio

pip uninstall torch torchvision torchaudio -y

  1. 打开 PyTorch 官网,选择系统、包管理器、CUDA 版本,复制对应安装命令
  2. 执行安装,等待完成
  3. 重启 Python 环境 / Notebook 内核,再次运行校验代码验证
  4. 代码里 cuda 调用逻辑不变,torch.cuda.is_available () 返回 True 即可正常跑 GPU

四、版本匹配要点

  1. PyTorch 的 CUDA 构建版本 ≤ 显卡驱动支持的最高 CUDA 版本
  2. 不要盲目装最新 CUDA,优先选和驱动兼容的稳定版本
  3. 用 pip 安装时,要带上索引地址,例如 cu124 版本

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

  1. conda 安装会自动处理 CUDA runtime,适合不想手动管理 CUDA Toolkit 的用户

五、避坑要点

  1. 显卡驱动正常 ≠ PyTorch 自带 CUDA 支持,二者相互独立
  2. 不要只装 CUDA Toolkit,不换 PyTorch 包,CPU 版 torch 依然无法调用 GPU
  3. 升级显卡驱动不能修复这个报错,根源是 PyTorch 构建包本身
  4. 多环境开发时,每次切换环境最好都跑一次 cuda 校验代码

【相关 FAQ】

问题 1:AssertionError: Torch not compiled with CUDA enabled,为什么要先确认装入的是 CPU 还是 CUDA 构建?

回答 1:AssertionError: Torch not compiled with CUDA enabled,这个报错的根源是 PyTorch 包本身是 CPU 构建,不包含 CUDA 内核,先确认构建版本可以快速区分是包的问题,还是显卡驱动问题。

问题 2:AssertionError: Torch not compiled with CUDA enabled,怎么查看当前 PyTorch 是 CPU 构建还是 CUDA 构建?

回答 2:AssertionError: Torch not compiled with CUDA enabled,可以打印 torch.version.cuda,返回 None 就是 CPU 构建,有版本数字就是 CUDA 构建。

问题 3:AssertionError: Torch not compiled with CUDA enabled,机器有 NVIDIA 显卡还报这个错是驱动坏了吗?

回答 3:AssertionError: Torch not compiled with CUDA enabled,大概率不是驱动问题,是当前环境的 PyTorch 为 CPU 构建,显卡驱动正常也会出现这个报错。

问题 4:AssertionError: Torch not compiled with CUDA enabled,重装 CUDA Toolkit 能不能修好?

回答 4:AssertionError: Torch not compiled with CUDA enabled,只装 CUDA Toolkit 不能修好,必须卸载 CPU 版 PyTorch,安装对应 CUDA 构建的 PyTorch 包。

【参考资料】

[2026-11-09](PyTorch AssertionError: Torch not compiled with CUDA enabled 排错)PyTorch Discuss

[2026-10-25](PyTorch 官网安装指南,区分 CPU、CUDA 构建包)PyTorch 官方

[2026-09-12](pip 默认安装 CPU 版 PyTorch 踩坑说明)Hugging Face 论坛

【免责声明】

本文内容基于 PyTorch 安装机制整理,AssertionError: Torch not compiled with CUDA enabled、先确认装入的是 CPU 还是 CUDA 构建为通用调试方案;不同操作系统、显卡驱动、虚拟环境管理器会有额外适配问题,命令和方案仅供开发调试参考。