Python中pytorch检测不到gpu怎么办?
老本子 nvs5400m 显卡,官网显示是支持 cuda 的,装了最新的 cuda10.1,nvcc -v 命令显示正常,装了 pytorch 1.3,测试 gpu 无效,是缺了 cudnn ?
Python中pytorch检测不到gpu怎么办?
13 回复
显卡老了?你需要自己编译安装 pytorch
检查PyTorch是否检测到GPU,先运行这段代码:
import torch
print(f"PyTorch版本: {torch.__version__}")
print(f"CUDA是否可用: {torch.cuda.is_available()}")
print(f"CUDA版本: {torch.version.cuda}")
print(f"GPU数量: {torch.cuda.device_count()}")
if torch.cuda.is_available():
print(f"当前GPU: {torch.cuda.get_device_name(0)}")
else:
print("未检测到GPU")
如果输出显示CUDA不可用,按这个顺序排查:
- 检查CUDA和PyTorch版本匹配
# 查看你的CUDA版本(命令行执行)
# nvcc --version 或 nvidia-smi
# 然后安装对应版本的PyTorch
# 例如CUDA 11.8对应:
# pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
- 验证NVIDIA驱动
# 命令行检查驱动
nvidia-smi
# 如果没输出,需要安装NVIDIA驱动
- 常见解决方案
# 方案A:重新安装匹配的PyTorch(以CUDA 11.8为例)
# 卸载现有版本
# pip uninstall torch torchvision torchaudio
# 安装指定CUDA版本
# pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# 方案B:如果使用conda
# conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch
# 方案C:检查环境变量
import os
print("CUDA_HOME:", os.environ.get('CUDA_HOME'))
print("PATH中的CUDA:", any('cuda' in p.lower() for p in os.environ['PATH'].split(';')))
- 强制使用GPU的测试代码
import torch
# 尝试创建GPU张量
if torch.cuda.is_available():
device = torch.device("cuda:0")
x = torch.randn(3, 3).to(device)
print("GPU张量创建成功:", x.device)
else:
print("创建GPU张量失败")
特别注意:
- 确保Python、PyTorch、CUDA版本三者匹配
- 虚拟环境中需要单独安装PyTorch
- 某些笔记本有双显卡(集成+独立),确保PyTorch用的是NVIDIA独显
一句话建议: 先检查版本匹配,再重装对应CUDA版本的PyTorch。
之前在服务器上各种试都不行,最后 deepo docker 保平安了
是 pip 直接装的 torch 吗?试试去官网?
我的笔记本是 2080+intel 双显卡。。。也是识别不到独立显卡, 后来就放弃了。。。还是乖乖买云 GPU 跑
他那显卡太老了,conda 的二进制包早就没有老显卡的文件了 除非自己编译安装 另外 cudnn 也得自己装
是在 anaconda 3.7 里装的
会不会默认序号是集成显卡导致不识别的?
更新一下驱动试试
你这显卡太老了,不一定跑得过现在的 CPU,别折腾了
还有 nvcc -v 没啥用,你 nvidia-smi 输出什么?


