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不可用,按这个顺序排查:

  1. 检查CUDA和PyTorch版本匹配
# 查看你的CUDA版本(命令行执行)
# nvcc --version 或 nvidia-smi
# 然后安装对应版本的PyTorch
# 例如CUDA 11.8对应:
# pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
  1. 验证NVIDIA驱动
# 命令行检查驱动
nvidia-smi
# 如果没输出,需要安装NVIDIA驱动
  1. 常见解决方案
# 方案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(';')))
  1. 强制使用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 安装 pytorch gpu 版本, 会自动帮你解决 cuda 和 cudnn 的问题

他那显卡太老了,conda 的二进制包早就没有老显卡的文件了 除非自己编译安装 另外 cudnn 也得自己装

是在 anaconda 3.7 里装的

会不会默认序号是集成显卡导致不识别的?

忘了,是 pip 装的

更新一下驱动试试

你这显卡太老了,不一定跑得过现在的 CPU,别折腾了

还有 nvcc -v 没啥用,你 nvidia-smi 输出什么?

回到顶部