存在的问题

安装Pytorch无法使用cuda

对于刚刚入门学习机器学习或者深度学习的小伙伴 ,如果你的电脑比较老,C盘的磁盘空间也比较满,像我一样,我的是2019年买的,可能会遇到这样的问题

PyTorch 1.13.1 + CUDA 11.6 的官方预编译 wheel 包,适用于 Python 3.10 + Windows 平台。
它们可以从 PyTorch 官方的 wheel 仓库直接下载:

明明已经执行了一下命令安装了Pytorch 

pip install torch torchvision torchaudio

电脑中有英伟达显卡,想使用cuda来进行相关的训练

但是出现以下的情况

明明显卡是正常的 但是在程序中仍然是使用的是CPU来训练,无法使用GPU的cuda

可能的原因是电脑没有正常安装带cuda版本的Pytorch

刚开始的时候我也是很困恼,明明有GPU为什么不能使用cuda,困惑了我好久,终于被自己解决了。

虽然显卡的版本较低 ,但还是可以正常安装使用的 。

解决办法

1. 如果使用命令无法进行安装 那就手动下载 Pytorch的的这三个文件,把他下载到有空余空间的地方

参考下载地址

直接下载链接
torch https://download.pytorch.org/whl/cu116/torch-1.13.1%2Bcu116-cp310-cp310-win_amd64.whl
torchvision https://download.pytorch.org/whl/cu116/torchvision-0.14.1%2Bcu116-cp310-cp310-win_amd64.whl
torchaudio https://download.pytorch.org/whl/cu116/torchaudio-0.13.1%2Bcu116-cp310-cp310-win_amd64.whl

2. 在你的python项目的虚拟环境中 进入到 上面你安装的这三个文件目录

3.依次执行 pip install 安装这三个文件,安装命令如下:

pip install torch-1.13.1+cu116-cp310-cp310-win_amd64.whl
pip install torchvision-0.14.1+cu116-cp310-cp310-win_amd64.whl
pip install torchaudio-0.13.1+cu116-cp310-cp310-win_amd64.whl

成功安装之后 cuda就可以使用了。

解决之后的效果

cuda变为可用

以下代码是一段 展示安装 Pytorch之后 cuda是否可用的代码

import torch

def check_cuda():
    print("=" * 50)
    print("🔍 PyTorch + CUDA 可用性检测")
    print("=" * 50)

    # 1. PyTorch 版本
    print(f"PyTorch 版本: {torch.__version__}")

    # 2. CUDA 是否可用
    cuda_available = torch.cuda.is_available()
    print(f"CUDA 可用: {cuda_available}")

    if not cuda_available:
        print("❌ CUDA 不可用!请检查:")
        print("   - NVIDIA 驱动是否安装?")
        print("   - PyTorch 是否安装了 CUDA 版本?")
        print("   - 运行 `nvidia-smi` 是否正常?")
        return

    # 3. CUDA 运行时版本(PyTorch 编译时使用的 CUDA 版本)
    print(f"PyTorch 编译的 CUDA 版本: {torch.version.cuda}")

    # 4. 当前 GPU 数量
    gpu_count = torch.cuda.device_count()
    print(f"GPU 数量: {gpu_count}")

    # 5. 当前 GPU 名称
    for i in range(gpu_count):
        print(f"GPU {i}: {torch.cuda.get_device_name(i)}")

    # 6. 当前默认 GPU 设备
    current_device = torch.cuda.current_device()
    print(f"当前默认设备 ID: {current_device}")
    print(f"当前默认设备名称: {torch.cuda.get_device_name(current_device)}")

    # 7. 实际测试:在 GPU 上创建张量并执行计算
    try:
        print("\n🧪 正在测试 GPU 计算...")
        x = torch.rand(1000, 1000).cuda()
        y = torch.rand(1000, 1000).cuda()
        z = torch.matmul(x, y)
        result = z.sum().item()
        print(f"✅ GPU 计算成功!结果示例: {result:.2f}")
    except Exception as e:
        print(f"❌ GPU 计算失败: {e}")

    print("=" * 50)
check_cuda()

更多推荐