在gpu机器上 torch.cuda.device_count() =0 是什么原因呢

没有安装torch的GPU版本,无法将模型或数据提交到gpu上训练。

cuda_available = torch.cuda.is_available()
print("Is CUDA available:", cuda_available)  # 输出为False

device_count = torch.cuda.device_count()
print("CUDA device count:", device_count)  # count=0 检测不到gpu设备

pip安装

-i https://mirrors.tuna.tsinghua.edu.cn/help/pypi/ 后面加上镜像 清华源镜像或其他镜像

pip install torch==2.1.0+cu118 torchaudio==2.1.0+cu118 torchvision==0.16.0+cu118 -i https://mirrors.tuna.tsinghua.edu.cn/help/pypi/

动手学深度学习 环境安装 https://blog.csdn.net/weixin_42831564/article/details/135090163?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171696760716800184152242%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171696760716800184152242&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_ecpm_v1~rank_v31_ecpm-1-135090163-null-null.nonecase&utm_term=pip%E6%B8%85%E5%8D%8E%E5%9B%AD%E9%95%9C%E5%83%8F%E5%AE%89%E8%A3%85numpy&spm=1018.2226.3001.4450

在 GPU 机器上 torch.cuda.device_count() 返回 0,意味着 PyTorch 没有检测到任何可用的 GPU。这可能由以下几个原因导致:

1. CUDA 和 PyTorch 版本不匹配

确保你安装的 PyTorch 版本是支持 CUDA 的,并且 CUDA 版本与 PyTorch 版本兼容。可以通过以下方式检查:

import torch
print(torch.__version__)
print(torch.version.cuda)
print(torch.backends.cudnn.version())

2. CUDA 驱动和库没有正确安装

确保 CUDA 驱动和库正确安装,可以使用 nvidia-smi 命令检查 CUDA 驱动:

nvidia-smi

如果没有显示任何 GPU 信息,说明 CUDA 驱动可能没有正确安装。

3. 环境变量设置不正确

确保 CUDA 库路径在 LD_LIBRARY_PATH 环境变量中。可以在终端中检查:

echo $LD_LIBRARY_PATH

确保输出包含 CUDA 库路径,例如 /usr/local/cuda/lib64

4. PyTorch 没有编译支持 CUDA

检查你安装的 PyTorch 是否支持 CUDA。你可以通过以下命令检查:

import torch
print(torch.cuda.is_available())

如果返回 False,说明 PyTorch 没有编译支持 CUDA。可以通过以下命令重新安装支持 CUDA 的 PyTorch:

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113

确保将 cu113 替换为你实际需要的 CUDA 版本。

5. GPU 资源被其他进程占用

如果 GPU 资源被其他进程占用,可能导致 PyTorch 无法检测到 GPU。使用 nvidia-smi 查看当前 GPU 使用情况:

nvidia-smi

6. CUDA 工具包没有安装或配置正确

确保 CUDA 工具包已正确安装并配置。可以通过以下方式检查 CUDA 工具包版本:

nvcc --version

如果没有显示 CUDA 工具包版本信息,说明 CUDA 工具包没有正确安装或配置。

示例代码进行检查

以下是一些示例代码来进行检查:

import torch

# 检查 PyTorch 和 CUDA 版本
print("PyTorch version:", torch.__version__)
print("CUDA version:", torch.version.cuda)

# 检查 CUDA 是否可用
cuda_available = torch.cuda.is_available()
print("Is CUDA available:", cuda_available)

# 检查 GPU 设备数量
device_count = torch.cuda.device_count()
print("CUDA device count:", device_count)

if cuda_available:
    for i in range(device_count):
        print(f"Device {i}: {torch.cuda.get_device_name(i)}")

通过上述检查步骤,你应该能找到 torch.cuda.device_count() 返回 0 的原因并解决问题。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐