Windows下RTX 5070安装PyTorch GPU完整教程:Python 3.11 + PyTorch 2.8.0 + CUDA 12.9

Windows下RTX 5070安装PyTorch GPU完整教程:Python 3.11 + PyTorch 2.8.0 + CUDA 12.9

1. 前言

最近在一台搭载 NVIDIA GeForce RTX 5070 的 Windows 电脑上重新配置 PyTorch GPU 深度学习环境。

最终成功配置如下:

text 复制代码
操作系统:Windows 11 64位
GPU:NVIDIA GeForce RTX 5070
Conda环境:pytorchgpu
Python:3.11.16
PyTorch:2.8.0+cu129
PyTorch CUDA Runtime:CUDA 12.9
CUDA可用:True

最终验证结果:

python 复制代码
import torch

print(torch.__version__)
print(torch.cuda.is_available())
print(torch.cuda.get_device_name(0))

输出:

text 复制代码
2.8.0+cu129
True
NVIDIA GeForce RTX 5070

这意味着:

PyTorch已经成功通过CUDA调用RTX 5070。

不过整个安装过程中踩了几个非常典型的坑:

  1. Conda创建Python 3.11环境失败;
  2. 普通CMD中Conda环境出现"假激活";
  3. cp311版本的PyTorch wheel提示不支持;
  4. 命令行明明显示(pytorchgpu),实际却仍然运行Python 3.13;
  5. 最终切换到真正的Python 3.11环境后,PyTorch和CUDA才正常工作。

本文重点记录第三部分:

如何正确安装PyTorch GPU,并判断CUDA和显卡是否真正可用。


2. 为什么要单独创建Python 3.11环境?

本机Anaconda的base环境中Python版本为:

text 复制代码
Python 3.13.9

虽然较新的PyTorch版本已经逐渐支持Python 3.13,但在科研和深度学习环境中,我更倾向于使用一个相对独立、兼容性较好的Python环境。

因此创建:

text 复制代码
pytorchgpu

并安装:

text 复制代码
Python 3.11.16

最终环境路径为:

text 复制代码
C:\Users\用户名\.conda\envs\pytorchgpu

成功进入环境后:

powershell 复制代码
python --version

输出:

text 复制代码
Python 3.11.16

后续所有PyTorch相关软件包都安装到这个环境中。


3. 首先理解一个关键问题:CUDA、Python和PyTorch是什么关系?

很多刚开始配置GPU环境的人容易产生一个误解:

CUDA 12.9是不是只能配某一个固定Python版本?

实际上并不是。

Python和CUDA之间通常不是直接绑定的。

真正需要匹配的是:

text 复制代码
Python版本
      ↓
PyTorch版本
      ↓
PyTorch对应的CUDA构建版本
      ↓
NVIDIA显卡驱动
      ↓
GPU

例如本文最终使用:

text 复制代码
Python 3.11.16
+
PyTorch 2.8.0
+
cu129
+
RTX 5070

其中:

text 复制代码
cu129

表示:

text 复制代码
CUDA 12.9

所以:

text 复制代码
torch 2.8.0+cu129

可以理解成:

PyTorch 2.8.0的CUDA 12.9版本。


4. 不要把nvidia-smi中的CUDA版本和PyTorch CUDA版本混为一谈

执行:

cmd 复制代码
nvidia-smi

通常会看到类似:

text 复制代码
CUDA Version: xx.x

需要特别注意:

nvidia-smi显示的CUDA Version主要表示当前NVIDIA驱动支持的最高CUDA兼容能力之一,并不意味着PyTorch必须安装完全相同的CUDA版本。

例如显卡驱动可能显示:

text 复制代码
CUDA Version: 13.x

但PyTorch仍然可以安装:

text 复制代码
cu129

只要当前显卡驱动足够新,能够兼容PyTorch所需要的CUDA Runtime即可。

因此不要简单理解成:

text 复制代码
nvidia-smi显示13.x
↓
PyTorch必须安装cu13x

这并不正确。


5. PyTorch wheel文件名到底是什么意思?

本文下载的PyTorch文件为:

text 复制代码
torch-2.8.0+cu129-cp311-cp311-win_amd64.whl

第一次看到这个文件名可能比较复杂,其实可以拆成几部分:

text 复制代码
torch
│
├── 2.8.0
│
├── +cu129
│
├── cp311
│
├── cp311
│
└── win_amd64

分别代表:

2.8.0

PyTorch版本:

text 复制代码
PyTorch 2.8.0

cu129

代表CUDA构建版本:

text 复制代码
CUDA 12.9

因此:

text 复制代码
2.8.0+cu129

就是:

PyTorch 2.8.0 + CUDA 12.9。


6. cp311是什么意思?

这一点非常重要。

文件名中的:

text 复制代码
cp311

表示:

text 复制代码
CPython 3.11

类似地:

text 复制代码
cp310 → Python 3.10
cp311 → Python 3.11
cp312 → Python 3.12
cp313 → Python 3.13

所以:

text 复制代码
torch-2.8.0+cu129-cp311-cp311-win_amd64.whl

要求使用:

text 复制代码
Python 3.11

如果当前实际运行的是Python 3.13,就不能直接安装这个wheel。


7. win_amd64又是什么意思?

最后:

text 复制代码
win_amd64

表示:

text 复制代码
Windows 64位

这里的amd64并不是说:

只有AMD处理器才能安装。

它实际上代表Windows x86-64架构。

因此Intel或AMD的普通64位Windows电脑都可以使用。

综合起来:

text 复制代码
torch-2.8.0+cu129-cp311-cp311-win_amd64.whl

可以解释为:

PyTorch 2.8.0 + CUDA 12.9 + CPython 3.11 + Windows 64位。


8. 本次第一次安装为什么失败?

进入下载目录后执行:

cmd 复制代码
pip install "torch-2.8.0+cu129-cp311-cp311-win_amd64.whl"

结果出现:

text 复制代码
ERROR:
torch-2.8.0+cu129-cp311-cp311-win_amd64.whl
is not a supported wheel on this platform.

同时还出现:

text 复制代码
Defaulting to user installation because normal site-packages is not writeable

一开始很容易怀疑:

text 复制代码
PyTorch版本不对?
CUDA 12.9不支持?
RTX 5070不支持?
wheel下载错了?
Windows版本不支持?

但最后发现:

这些都不是根本原因。


9. 真正原因:当前实际上运行的是Python 3.13

虽然CMD前面显示:

text 复制代码
(pytorchgpu)

但执行:

cmd 复制代码
python

却得到:

text 复制代码
Python 3.13.9 | packaged by Anaconda, Inc.

进一步执行:

cmd 复制代码
where python

得到:

text 复制代码
D:\ruanjian\anaconda\python.exe

说明实际调用的是:

text 复制代码
Anaconda base环境
Python 3.13.9

而不是刚刚创建的:

text 复制代码
pytorchgpu
Python 3.11.16

于是实际情况变成:

text 复制代码
下载的wheel:
cp311
↓
要求Python 3.11

当前实际Python:
3.13.9

结果:
版本不兼容
↓
not a supported wheel on this platform

这就是第一次安装失败的真正原因。


10. 不要只看命令行前面的环境名称

这是整个安装过程中非常重要的经验。

即使终端显示:

text 复制代码
(pytorchgpu)

也最好执行:

cmd 复制代码
python --version

确认Python版本。

再执行:

cmd 复制代码
where python

确认解释器路径。

例如本文正确环境应该是:

text 复制代码
Python 3.11.16

并且Python路径应该类似:

text 复制代码
C:\Users\用户名\.conda\envs\pytorchgpu\python.exe

如果看到:

text 复制代码
D:\ruanjian\anaconda\python.exe

说明实际还是base环境。

所以:

终端前缀只是一种提示,真正决定环境的是当前调用的python.exe。


11. 正确进入PyTorch环境

由于普通CMD中的Conda激活存在异常,本次最终使用:

text 复制代码
Anaconda PowerShell Prompt

执行:

powershell 复制代码
conda activate pytorchgpu

然后检查:

powershell 复制代码
python --version

输出:

text 复制代码
Python 3.11.16

进一步进入Python:

powershell 复制代码
python

显示:

text 复制代码
Python 3.11.16 | packaged by conda-forge

至此可以确认:

当前真正进入了Python 3.11的pytorchgpu环境。


12. 推荐使用python -m pip安装,而不是直接pip

在多Python环境电脑上,推荐使用:

powershell 复制代码
python -m pip install xxx

而不是:

powershell 复制代码
pip install xxx

原因是:

text 复制代码
pip install

依赖Windows PATH寻找:

text 复制代码
pip.exe

如果电脑中同时存在:

text 复制代码
Python 3.13
Python 3.11
Anaconda
Conda虚拟环境

就可能找到错误的pip。

而:

powershell 复制代码
python -m pip

表示:

使用当前这个Python解释器所对应的pip。

因此更加可靠。


13. 安装本地PyTorch wheel

首先进入下载目录:

powershell 复制代码
cd "F:\edge浏览器下载的内容"

确认:

powershell 复制代码
python --version

输出:

text 复制代码
Python 3.11.16

然后安装:

powershell 复制代码
python -m pip install "torch-2.8.0+cu129-cp311-cp311-win_amd64.whl"

由于此时:

text 复制代码
当前Python:3.11.16
wheel:cp311
系统:Windows 64位

三者完全匹配,因此可以正常安装。


14. 安装torchvision

对应的torchvision文件为:

text 复制代码
torchvision-0.23.0+cu129-cp311-cp311-win_amd64.whl

同样执行:

powershell 复制代码
python -m pip install "torchvision-0.23.0+cu129-cp311-cp311-win_amd64.whl"

这样PyTorch和torchvision保持对应版本。

本文最终组合为:

text 复制代码
torch       2.8.0+cu129
torchvision 0.23.0+cu129

15. 如果不想手动下载wheel怎么办?

也可以直接使用PyTorch对应软件源在线安装。

基本形式为:

powershell 复制代码
python -m pip install torch torchvision torchaudio --index-url <对应的PyTorch CUDA软件源>

在线安装的优点是:

pip会根据当前Python版本和操作系统选择对应wheel。

因此可以减少手动下载:

text 复制代码
cp311
cp312
cp313

错误版本的概率。

如果网络环境不稳定,手动下载wheel后本地安装也完全可以。


16. 安装完成后第一步:检查PyTorch版本

进入Python:

powershell 复制代码
python

然后:

python 复制代码
import torch

首先检查:

python 复制代码
print(torch.__version__)

本文输出:

text 复制代码
2.8.0+cu129

这里非常关键。

如果只显示:

text 复制代码
2.8.0

还需要进一步确认具体安装包。

本文:

text 复制代码
2.8.0+cu129

明确说明当前安装的是:

PyTorch 2.8.0 CUDA 12.9构建。


17. 第二步:检查CUDA是否可用

执行:

python 复制代码
print(torch.cuda.is_available())

本文得到:

text 复制代码
True

这是PyTorch GPU环境最核心的检测之一。

如果输出:

text 复制代码
True

说明:

PyTorch已经能够正常访问CUDA设备。

如果输出:

text 复制代码
False

则需要继续检查:

text 复制代码
是否安装CPU版PyTorch
NVIDIA驱动是否正常
GPU是否被系统识别
PyTorch CUDA构建是否正确
环境是否装错

18. 第三步:检查PyTorch识别到了哪张显卡

执行:

python 复制代码
print(torch.cuda.get_device_name(0))

本文输出:

text 复制代码
NVIDIA GeForce RTX 5070

这一步非常重要,因为它说明:

PyTorch不仅检测到了CUDA,而且已经成功识别实际GPU设备。

最终验证结果:

python 复制代码
>>> import torch

>>> print(torch.__version__)
2.8.0+cu129

>>> print(torch.cuda.is_available())
True

>>> print(torch.cuda.get_device_name(0))
NVIDIA GeForce RTX 5070

到这里就可以认为:

RTX 5070的PyTorch GPU环境已经完整打通。


19. 还可以进行更完整的GPU检测

除了上面三条,还可以执行:

python 复制代码
import torch

print("PyTorch版本:", torch.__version__)
print("CUDA是否可用:", torch.cuda.is_available())
print("PyTorch CUDA版本:", torch.version.cuda)
print("GPU数量:", torch.cuda.device_count())

if torch.cuda.is_available():
    print("当前GPU:", torch.cuda.get_device_name(0))

预期结果类似:

text 复制代码
PyTorch版本: 2.8.0+cu129
CUDA是否可用: True
PyTorch CUDA版本: 12.9
GPU数量: 1
当前GPU: NVIDIA GeForce RTX 5070

这比只看:

python 复制代码
torch.cuda.is_available()

更加完整。


20. 进一步测试:真正创建一个CUDA Tensor

有时候仅仅检查:

python 复制代码
torch.cuda.is_available()

还不够直观。

可以直接创建一个GPU Tensor:

python 复制代码
import torch

x = torch.randn(3, 3).cuda()

print(x)
print(x.device)

如果最后显示:

text 复制代码
cuda:0

说明这个Tensor已经真实存放在GPU显存中。

也可以写成:

python 复制代码
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

x = torch.randn(3, 3).to(device)

print(x.device)

输出:

text 复制代码
cuda:0

这就是更加直接的CUDA运行测试。


21. 深度学习代码中怎么让模型使用RTX 5070?

以后自己的PyTorch代码中推荐这样写:

python 复制代码
import torch

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

print("当前设备:", device)

然后将模型放到GPU:

python 复制代码
model = model.to(device)

数据也要放到相同设备:

python 复制代码
x = x.to(device)
y = y.to(device)

例如:

python 复制代码
for x, y in train_loader:
    x = x.to(device)
    y = y.to(device)

    output = model(x)

只要:

python 复制代码
torch.cuda.is_available()

为:

text 复制代码
True

这里:

python 复制代码
device

就会自动选择:

text 复制代码
cuda

也就是RTX 5070。


22. 一个非常容易误解的问题:必须安装本地CUDA Toolkit吗?

很多人认为:

使用PyTorch GPU之前,一定要先安装和PyTorch完全相同版本的CUDA Toolkit。

实际上对于PyTorch官方提供的CUDA wheel来说,并不总是如此。

例如:

text 复制代码
torch-2.8.0+cu129

本身已经带有运行PyTorch所需的一套CUDA相关运行时依赖。

因此对于普通PyTorch训练任务,更核心的是:

text 复制代码
正确的NVIDIA显卡驱动
+
正确的PyTorch CUDA构建

而不是:

系统必须另外安装一个完全相同版本的CUDA Toolkit。

只有在一些特殊场景,例如:

text 复制代码
编译自定义CUDA扩展
CUDA C/C++开发
某些第三方库需要nvcc

时,本地CUDA Toolkit才更加重要。

所以:

text 复制代码
torch.version.cuda

和:

text 复制代码
nvcc --version

反映的并不一定是同一个东西。


23. PyTorch中的cu129和系统CUDA不是同一个概念

假设:

python 复制代码
print(torch.version.cuda)

输出:

text 复制代码
12.9

表示:

当前PyTorch是基于CUDA 12.9相关运行时构建的。

而执行:

cmd 复制代码
nvcc --version

显示的是:

本机安装的CUDA Toolkit编译器版本。

执行:

cmd 复制代码
nvidia-smi

看到的:

text 复制代码
CUDA Version

主要和当前NVIDIA驱动支持能力有关。

因此三个地方的CUDA版本:

text 复制代码
nvidia-smi
nvcc --version
torch.version.cuda

出现不同数字,并不一定意味着环境有问题。

这是配置PyTorch时非常容易混淆的一点。


24. 常见错误一:not a supported wheel on this platform

如果出现:

text 复制代码
xxx.whl is not a supported wheel on this platform

优先检查:

cmd 复制代码
python --version

以及:

cmd 复制代码
where python

然后查看wheel名称。

例如:

text 复制代码
cp311

必须对应:

text 复制代码
Python 3.11

如果实际Python是:

text 复制代码
3.13

就会直接不兼容。


25. 常见错误二:环境名前面显示正确,但Python版本不对

例如:

text 复制代码
(pytorchgpu) C:\Users\xxx>

看起来进入了环境。

但:

cmd 复制代码
python --version

却是:

text 复制代码
Python 3.13.9

这种情况下不要继续安装任何包。

一定继续检查:

cmd 复制代码
where python

真正激活后应该指向:

text 复制代码
...\envs\pytorchgpu\python.exe

26. 常见错误三:torch.cuda.is_available()返回False

如果:

python 复制代码
torch.cuda.is_available()

返回:

text 复制代码
False

可以按照以下顺序排查:

text 复制代码
1. nvidia-smi能否识别显卡
        ↓
2. torch.__version__是什么
        ↓
3. 是否安装了CUDA版PyTorch
        ↓
4. torch.version.cuda是否有值
        ↓
5. 当前Python是否来自正确环境
        ↓
6. 是否误装了CPU版torch

例如:

python 复制代码
print(torch.__version__)
print(torch.version.cuda)

如果:

python 复制代码
torch.version.cuda

为:

text 复制代码
None

通常需要重点怀疑安装的是CPU构建。


27. 常见错误四:pip把库装到了错误的Python中

如果电脑中存在多个Python:

text 复制代码
Python 3.13
Python 3.11
Conda base
Conda pytorchgpu

不建议只执行:

cmd 复制代码
pip install xxx

建议:

cmd 复制代码
python -m pip install xxx

还可以提前检查:

cmd 复制代码
python -m pip --version

确保路径中包含:

text 复制代码
pytorchgpu

28. 普通CMD不能正常activate怎么办?

即使普通CMD中的:

cmd 复制代码
conda activate pytorchgpu

存在问题,也不是不能安装软件包。

可以执行:

cmd 复制代码
conda run -n pytorchgpu python -m pip install numpy

或者直接指定Python:

cmd 复制代码
"C:\Users\用户名\.conda\envs\pytorchgpu\python.exe" -m pip install numpy

因此:

使用PyTorch并不是只能依赖Anaconda PowerShell Prompt。

只要最终调用的是正确解释器即可。

不过如果Anaconda PowerShell Prompt可以正常激活,日常使用它通常最省心。


29. 本次完整安装逻辑

整个流程可以总结成:

text 复制代码
RTX 5070
        ↓
安装/确认NVIDIA显卡驱动
        ↓
创建Conda独立环境
        ↓
Python 3.11.16
        ↓
确认python --version
        ↓
确认Python解释器路径
        ↓
安装torch 2.8.0+cu129
        ↓
安装torchvision 0.23.0+cu129
        ↓
import torch
        ↓
torch.__version__
2.8.0+cu129
        ↓
torch.cuda.is_available()
True
        ↓
torch.cuda.get_device_name(0)
NVIDIA GeForce RTX 5070
        ↓
GPU环境配置成功

30. 推荐的最终验证代码

环境安装结束后,可以保存下面代码为:

text 复制代码
test_gpu.py

内容:

python 复制代码
import torch

print("=" * 50)
print("PyTorch GPU Environment Check")
print("=" * 50)

print(f"PyTorch version : {torch.__version__}")
print(f"CUDA available  : {torch.cuda.is_available()}")
print(f"PyTorch CUDA    : {torch.version.cuda}")
print(f"GPU count       : {torch.cuda.device_count()}")

if torch.cuda.is_available():
    print(f"GPU name        : {torch.cuda.get_device_name(0)}")

    device = torch.device("cuda")
    x = torch.randn(3, 3, device=device)

    print(f"Tensor device   : {x.device}")
    print("GPU test        : SUCCESS")
else:
    print("GPU test        : FAILED")

print("=" * 50)

执行:

powershell 复制代码
python test_gpu.py

如果得到类似:

text 复制代码
PyTorch version : 2.8.0+cu129
CUDA available  : True
PyTorch CUDA    : 12.9
GPU count       : 1
GPU name        : NVIDIA GeForce RTX 5070
Tensor device   : cuda:0
GPU test        : SUCCESS

说明PyTorch GPU环境已经真正可以使用。


31. 本次最终配置

最终成功环境:

text 复制代码
Conda环境:
pytorchgpu

Python:
3.11.16

PyTorch:
2.8.0+cu129

CUDA Runtime:
12.9

GPU:
NVIDIA GeForce RTX 5070

torch.cuda.is_available():
True

也就是:

text 复制代码
Python 3.11
        ↓
PyTorch 2.8.0
        ↓
CUDA 12.9 Runtime
        ↓
NVIDIA RTX 5070
        ↓
GPU深度学习环境成功

32. 总结

这次配置过程中最值得记住的并不是某一条安装命令,而是以下几个原则。

第一:

下载PyTorch wheel时一定要看Python版本。

例如:

text 复制代码
cp311 → Python 3.11
cp312 → Python 3.12
cp313 → Python 3.13

第二:

终端显示 (pytorchgpu) 并不能替代Python版本检查。

始终建议执行:

cmd 复制代码
python --version

以及:

cmd 复制代码
where python

第三:

安装Python软件包建议使用 python -m pip

例如:

cmd 复制代码
python -m pip install xxx

第四:

不要简单要求nvidia-smi、本地CUDA Toolkit和PyTorch CUDA版本三个数字完全一致。

它们代表的概念并不完全相同。

第五:

判断PyTorch GPU是否真正成功,最有说服力的是运行结果。

本文最终结果:

python 复制代码
print(torch.__version__)

输出:

text 复制代码
2.8.0+cu129
python 复制代码
print(torch.cuda.is_available())

输出:

text 复制代码
True
python 复制代码
print(torch.cuda.get_device_name(0))

输出:

text 复制代码
NVIDIA GeForce RTX 5070

这三个结果同时成立,说明:

Python 3.11 → PyTorch 2.8.0 → CUDA 12.9 → RTX 5070这条GPU计算链已经完整打通。


附:常用检查命令

检查Python:

cmd 复制代码
python --version

检查Python路径:

cmd 复制代码
where python

检查pip:

cmd 复制代码
python -m pip --version

检查NVIDIA显卡:

cmd 复制代码
nvidia-smi

检查PyTorch版本:

python 复制代码
import torch
print(torch.__version__)

检查PyTorch CUDA Runtime:

python 复制代码
print(torch.version.cuda)

检查CUDA:

python 复制代码
print(torch.cuda.is_available())

检查GPU:

python 复制代码
print(torch.cuda.get_device_name(0))

检查GPU数量:

python 复制代码
print(torch.cuda.device_count())

创建GPU Tensor:

python 复制代码
x = torch.randn(3, 3, device="cuda")
print(x.device)

如果最终得到:

text 复制代码
cuda:0

并且:

text 复制代码
NVIDIA GeForce RTX 5070

那么恭喜你:

PyTorch GPU环境已经配置完成,可以正式开始模型训练。

相关推荐
爱学习的小白柏13 小时前
【AI问数技术】多Agent协同架构:查询规划/SQL生成/洞察分析/报告生成
java·网络·人工智能·windows·sql·架构·llama
何以解忧,唯有..16 小时前
Python 中获取目录操作完全指南
windows·python·microsoft
浪兎兎17 小时前
【微调】(案例)SpeedWolf 狼人杀策略分析模型
人工智能·pytorch
苏子寒19 小时前
Nano-VLLM全代码解析笔记(6)-embed_head和linear
pytorch·笔记·python·机器学习·ai·nlp·vllm
YCOSA202519 小时前
雨晨 Windows 10 轻装版 64位 六合一 VIP 19045.7663
windows·物联网
hhzz21 小时前
智慧校园13类视频异常检测:数据集与预训练模型全攻略
人工智能·pytorch·python·深度学习·目标检测·机器学习
FriendshipT1 天前
DeepSeek Harness 使用 Ollama 本地部署的 AI 大模型(以Qwen3.8-27B为例)
人工智能·pytorch·深度学习·ollama·deepseek
吃旺旺雪饼的小男孩1 天前
U-Net 语义分割详解:原论文、PyTorch 实现与真实消融实
人工智能·pytorch·python·算法
DOLA_Tech1 天前
电脑共享文件夹教程(Windows、统信UOS、银河麒麟)
windows·电脑