在 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 构建。
三、分步排查操作
- 执行校验代码,确认当前 PyTorch 是 CPU 构建还是 CUDA 构建
- 如果是 CPU 版,卸载现有 torch、torchvision、torchaudio
pip uninstall torch torchvision torchaudio -y
- 打开 PyTorch 官网,选择系统、包管理器、CUDA 版本,复制对应安装命令
- 执行安装,等待完成
- 重启 Python 环境 / Notebook 内核,再次运行校验代码验证
- 代码里 cuda 调用逻辑不变,torch.cuda.is_available () 返回 True 即可正常跑 GPU
四、版本匹配要点
- PyTorch 的 CUDA 构建版本 ≤ 显卡驱动支持的最高 CUDA 版本
- 不要盲目装最新 CUDA,优先选和驱动兼容的稳定版本
- 用 pip 安装时,要带上索引地址,例如 cu124 版本
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124
- conda 安装会自动处理 CUDA runtime,适合不想手动管理 CUDA Toolkit 的用户
五、避坑要点
- 显卡驱动正常 ≠ PyTorch 自带 CUDA 支持,二者相互独立
- 不要只装 CUDA Toolkit,不换 PyTorch 包,CPU 版 torch 依然无法调用 GPU
- 升级显卡驱动不能修复这个报错,根源是 PyTorch 构建包本身
- 多环境开发时,每次切换环境最好都跑一次 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 构建为通用调试方案;不同操作系统、显卡驱动、虚拟环境管理器会有额外适配问题,命令和方案仅供开发调试参考。
