我将为你撰写一篇详尽的解决方案指南,帮助用户解决 torch not compiled with cuda enabled 这一常见报错。
PyTorch 报错:torch not compiled with cuda enabled 怎么办?看这里
在使用 PyTorch 进行深度学习开发时,你可能会遇到这样一个令人沮丧的错误:
AssertionError: Torch not compiled with CUDA enabled
这意味着你正尝试在 GPU 上运行代码,但你安装的 PyTorch 版本并不支持 CUDA(即它是 CPU 专用版)。别担心,这篇文章将带你一步步彻底解决这个问题。
第一步:确认你的硬件和驱动
在折腾软件之前,首先要确认你的电脑确实有 NVIDIA GPU。
- 检查显卡:右键点击“此电脑” -> “管理” -> “设备管理器” -> “显示适配器”,确认是否有 NVIDIA 字样的显卡。
- 检查驱动:打开命令行(Win+R 输入
cmd),输入:
bash
nvidia-smi
如果你能看到显卡型号和驱动版本,说明驱动安装正常。注意右上角的 CUDA Version,这是你的显卡驱动支持的最高 CUDA 版本。
第二步:诊断当前的 PyTorch 状态
在 Python 环境中运行以下代码,确认问题的存在:
python
import torch
print(torch.__version__)
print(torch.cuda.is_available())
如果 is_available() 返回 False,且版本号里带有 +cpu(例如 2.1.0+cpu),说明你安装的是 CPU 版本。
第三步:卸载旧版本(关键)
为了避免版本冲突,建议先卸载当前的 PyTorch。打开你的终端或 Anaconda Prompt,激活对应的虚拟环境后运行:
bash
pip uninstall torch torchvision torchaudio
(如果是 conda 安装的,使用 conda uninstall pytorch torchvision torchaudio)
第四步:安装支持 CUDA 的 PyTorch
不要直接用 pip install torch,这通常会默认下载 CPU 版。
- 访问官网:前往 PyTorch 官网 (pytorch.org)。
- 选择配置:
- Build: Stable (稳定版)
- OS: Windows / Linux
- Package: Pip (推荐) 或 Conda
- Language: Python
- Compute Platform: 选择一个小于或等于你
nvidia-smi显示的 CUDA 版本(例如 CUDA 11.8 或 12.1)。
- 复制命令:官网会自动生成一行安装命令。例如:
bash
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
第五步:验证安装
安装完成后,再次回到 Python 环境测试:
python
import torch
print("PyTorch 版本:", torch.__version__)
print("CUDA 是否可用:", torch.cuda.is_available())
if torch.cuda.is_available():
print("显卡名称:", torch.cuda.get_device_name(0))
如果返回 True 且正确显示了显卡名称,恭喜你,问题解决了!
常见坑点避雷
- 下载速度慢:如果官方镜像太慢,可以尝试在命令末尾添加镜像源,但一定要注意版本后缀。对于 GPU 版,最稳妥的方法还是通过官网提供的
--index-url。 - 显卡驱动太旧:如果安装了较新的 CUDA 版本(如 12.1),但驱动还是几年前的,可能会报错。记得去 NVIDIA 官网更新最新显卡驱动。
- Anaconda 冲突:如果你使用 Conda,建议创建一个全新的虚拟环境来安装:
bash
conda create -n torch_gpu python=3.10
conda activate torch_gpu
# 然后运行官网的安装命令
总结:解决这个问题的核心在于“完全卸载”+“通过官网获取对应 CUDA 版本的安装指令”。希望这篇指南能帮你快速回到代码开发中!