【踩坑记录】PyTorch 被误装 CPU 版本导致 CUDA 丢失的解决办法(Windows + Anaconda)
【踩坑记录】PyTorch 被误装 CPU 版本导致 CUDA 丢失的解决办法(Windows + Anaconda)
💡 背景:
在用pip install pytorch-lightning
的时候,不小心让 pip 给我装上了 torch 2.8.0+cpu,结果原来能用的 GPU 版 PyTorch 全没了,torch.version.cuda
直接变成None
。
好在排查后找到了完整的解决方法,这里整理成一篇笔记,防止大家再踩坑。
1. 问题表现
在 Python 里运行:
import torch
print(torch.__version__)
print(torch.version.cuda)
print(torch.cuda.is_available())
输出结果是:
2.8.0+cpu
None
False
这就说明 装成了 CPU 版本,完全不能调用显卡。
2. 检查 CUDA 驱动版本
在 命令行 / Anaconda Prompt 输入:
nvidia-smi
输出类似:
NVIDIA-SMI 560.94 Driver Version: 560.94 CUDA Version: 12.6
这里可以看到我本机的驱动支持 CUDA 12.6。
但是 PyTorch 官方目前最高只提供到 cu121 (CUDA 12.1) 的预编译包,幸好 CUDA 驱动是向下兼容的,所以装 cu121 就能正常使用。
3. 卸载错误的 torch
先把 CPU 版 torch 卸掉:
pip uninstall -y torch torchvision torchaudio
4. 安装对应 CUDA 版本的 PyTorch
根据官方推荐,安装 torch 2.3.1 + cu121 版本:
pip install torch==2.3.1 torchvision==0.18.1 torchaudio==2.3.1 ^--index-url https://download.pytorch.org/whl/cu121
⚠️ 注意:
- 一定要带
--index-url https://download.pytorch.org/whl/cu121
否则默认会装 CPU 版本!
5. 安装 PyTorch Lightning(可选)
因为我的项目代码是基于旧版 Lightning 写的,所以我安装了兼容性最好的 1.9.5
版本:
pip install pytorch-lightning==1.9.5 -i https://pypi.tuna.tsinghua.edu.cn/simple
如果你是新项目,可以考虑 Lightning 2.x,但是要注意 API 改动。
6. 验证安装
在 Python 里执行:
import torch
print("Torch:", torch.__version__)
print("CUDA Version (compiled):", torch.version.cuda)
print("CUDA available:", torch.cuda.is_available())
输出结果应该类似:
Torch: 2.3.1+cu121
CUDA Version (compiled): 12.1
CUDA available: True
这样就说明 GPU 环境恢复正常了 ✅。
7. 总结
- 安装 PyTorch Lightning 时,可能会自动拉取最新 CPU 版 torch,把原来的 GPU 版顶掉。
- 正确做法是 先卸载错误的 torch,再手动指定 CUDA 对应的版本。
- 记住:驱动 CUDA 版本 ≥ PyTorch 对应 CUDA 版本,即可正常运行。
8. 附:requirements.txt 示例
如果以后要复现环境,可以保存一个最小依赖文件:
torch==2.3.1+cu121
torchvision==0.18.1
torchaudio==2.3.1
pytorch-lightning==1.9.5
安装方法:
pip install -r requirements.txt --index-url https://download.pytorch.org/whl/cu121
✍️ 写在最后
这是我最近在做深度学习项目时遇到的一个大坑,差点以为显卡驱动坏了。其实就是 pip 默认装了 CPU 版本。
分享给大家,也希望能帮到同样在科研道路上踩坑的小伙伴!