Windows下RTX 5070安装PyTorch GPU完整教程:Python 3.11 + PyTorch 2.8.0 + CUDA 12.9
1. 前言
最近在一台搭载NVIDIA GeForce RTX 5070的 Windows 电脑上重新配置 PyTorch GPU 深度学习环境。
最终成功配置如下:
操作系统: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最终验证结果:
importtorchprint(torch.__version__)print(torch.cuda.is_available())print(torch.cuda.get_device_name(0))输出:
2.8.0+cu129 True NVIDIA GeForce RTX 5070这意味着:
PyTorch已经成功通过CUDA调用RTX 5070。
不过整个安装过程中踩了几个非常典型的坑:
- Conda创建Python 3.11环境失败;
- 普通CMD中Conda环境出现“假激活”;
cp311版本的PyTorch wheel提示不支持;- 命令行明明显示
(pytorchgpu),实际却仍然运行Python 3.13; - 最终切换到真正的Python 3.11环境后,PyTorch和CUDA才正常工作。
本文重点记录第三部分:
如何正确安装PyTorch GPU,并判断CUDA和显卡是否真正可用。
2. 为什么要单独创建Python 3.11环境?
本机Anaconda的base环境中Python版本为:
Python 3.13.9虽然较新的PyTorch版本已经逐渐支持Python 3.13,但在科研和深度学习环境中,我更倾向于使用一个相对独立、兼容性较好的Python环境。
因此创建:
pytorchgpu并安装:
Python 3.11.16最终环境路径为:
C:\Users\用户名\.conda\envs\pytorchgpu成功进入环境后:
python--version输出:
Python 3.11.16后续所有PyTorch相关软件包都安装到这个环境中。
3. 首先理解一个关键问题:CUDA、Python和PyTorch是什么关系?
很多刚开始配置GPU环境的人容易产生一个误解:
CUDA 12.9是不是只能配某一个固定Python版本?
实际上并不是。
Python和CUDA之间通常不是直接绑定的。
真正需要匹配的是:
Python版本 ↓ PyTorch版本 ↓ PyTorch对应的CUDA构建版本 ↓ NVIDIA显卡驱动 ↓ GPU例如本文最终使用:
Python 3.11.16 + PyTorch 2.8.0 + cu129 + RTX 5070其中:
cu129表示:
CUDA 12.9所以:
torch 2.8.0+cu129可以理解成:
PyTorch 2.8.0的CUDA 12.9版本。
4. 不要把nvidia-smi中的CUDA版本和PyTorch CUDA版本混为一谈
执行:
nvidia-smi通常会看到类似:
CUDA Version: xx.x需要特别注意:
nvidia-smi显示的CUDA Version主要表示当前NVIDIA驱动支持的最高CUDA兼容能力之一,并不意味着PyTorch必须安装完全相同的CUDA版本。
例如显卡驱动可能显示:
CUDA Version: 13.x但PyTorch仍然可以安装:
cu129只要当前显卡驱动足够新,能够兼容PyTorch所需要的CUDA Runtime即可。
因此不要简单理解成:
nvidia-smi显示13.x ↓ PyTorch必须安装cu13x这并不正确。
5. PyTorch wheel文件名到底是什么意思?
本文下载的PyTorch文件为:
torch-2.8.0+cu129-cp311-cp311-win_amd64.whl第一次看到这个文件名可能比较复杂,其实可以拆成几部分:
torch │ ├── 2.8.0 │ ├── +cu129 │ ├── cp311 │ ├── cp311 │ └── win_amd64分别代表:
2.8.0
PyTorch版本:
PyTorch 2.8.0cu129
代表CUDA构建版本:
CUDA 12.9因此:
2.8.0+cu129就是:
PyTorch 2.8.0 + CUDA 12.9。
6. cp311是什么意思?
这一点非常重要。
文件名中的:
cp311表示:
CPython 3.11类似地:
cp310 → Python 3.10 cp311 → Python 3.11 cp312 → Python 3.12 cp313 → Python 3.13所以:
torch-2.8.0+cu129-cp311-cp311-win_amd64.whl要求使用:
Python 3.11如果当前实际运行的是Python 3.13,就不能直接安装这个wheel。
7. win_amd64又是什么意思?
最后:
win_amd64表示:
Windows 64位这里的amd64并不是说:
只有AMD处理器才能安装。
它实际上代表Windows x86-64架构。
因此Intel或AMD的普通64位Windows电脑都可以使用。
综合起来:
torch-2.8.0+cu129-cp311-cp311-win_amd64.whl可以解释为:
PyTorch 2.8.0 + CUDA 12.9 + CPython 3.11 + Windows 64位。
8. 本次第一次安装为什么失败?
进入下载目录后执行:
pip install "torch-2.8.0+cu129-cp311-cp311-win_amd64.whl"结果出现:
ERROR: torch-2.8.0+cu129-cp311-cp311-win_amd64.whl is not a supported wheel on this platform.同时还出现:
Defaulting to user installation because normal site-packages is not writeable一开始很容易怀疑:
PyTorch版本不对? CUDA 12.9不支持? RTX 5070不支持? wheel下载错了? Windows版本不支持?但最后发现:
这些都不是根本原因。
9. 真正原因:当前实际上运行的是Python 3.13
虽然CMD前面显示:
(pytorchgpu)但执行:
python却得到:
Python 3.13.9 | packaged by Anaconda, Inc.进一步执行:
where python得到:
D:\ruanjian\anaconda\python.exe说明实际调用的是:
Anaconda base环境 Python 3.13.9而不是刚刚创建的:
pytorchgpu Python 3.11.16于是实际情况变成:
下载的wheel: cp311 ↓ 要求Python 3.11 当前实际Python: 3.13.9 结果: 版本不兼容 ↓ not a supported wheel on this platform这就是第一次安装失败的真正原因。
10. 不要只看命令行前面的环境名称
这是整个安装过程中非常重要的经验。
即使终端显示:
(pytorchgpu)也最好执行:
python --version确认Python版本。
再执行:
where python确认解释器路径。
例如本文正确环境应该是:
Python 3.11.16并且Python路径应该类似:
C:\Users\用户名\.conda\envs\pytorchgpu\python.exe如果看到:
D:\ruanjian\anaconda\python.exe说明实际还是base环境。
所以:
终端前缀只是一种提示,真正决定环境的是当前调用的python.exe。
11. 正确进入PyTorch环境
由于普通CMD中的Conda激活存在异常,本次最终使用:
Anaconda PowerShell Prompt执行:
conda activate pytorchgpu然后检查:
python--version输出:
Python 3.11.16进一步进入Python:
python显示:
Python 3.11.16 | packaged by conda-forge至此可以确认:
当前真正进入了Python 3.11的
pytorchgpu环境。
12. 推荐使用python -m pip安装,而不是直接pip
在多Python环境电脑上,推荐使用:
python-m pip install xxx而不是:
pip install xxx原因是:
pip install依赖Windows PATH寻找:
pip.exe如果电脑中同时存在:
Python 3.13 Python 3.11 Anaconda Conda虚拟环境就可能找到错误的pip。
而:
python-m pip表示:
使用当前这个Python解释器所对应的pip。
因此更加可靠。
13. 安装本地PyTorch wheel
首先进入下载目录:
cd"F:\edge浏览器下载的内容"确认:
python--version输出:
Python 3.11.16然后安装:
python-m pip install"torch-2.8.0+cu129-cp311-cp311-win_amd64.whl"由于此时:
当前Python:3.11.16 wheel:cp311 系统:Windows 64位三者完全匹配,因此可以正常安装。
14. 安装torchvision
对应的torchvision文件为:
torchvision-0.23.0+cu129-cp311-cp311-win_amd64.whl同样执行:
python-m pip install"torchvision-0.23.0+cu129-cp311-cp311-win_amd64.whl"这样PyTorch和torchvision保持对应版本。
本文最终组合为:
torch 2.8.0+cu129 torchvision 0.23.0+cu12915. 如果不想手动下载wheel怎么办?
也可以直接使用PyTorch对应软件源在线安装。
基本形式为:
python-m pip install torch torchvision torchaudio--index-url <对应的PyTorch CUDA软件源>在线安装的优点是:
pip会根据当前Python版本和操作系统选择对应wheel。
因此可以减少手动下载:
cp311 cp312 cp313错误版本的概率。
如果网络环境不稳定,手动下载wheel后本地安装也完全可以。
16. 安装完成后第一步:检查PyTorch版本
进入Python:
python然后:
importtorch首先检查:
print(torch.__version__)本文输出:
2.8.0+cu129这里非常关键。
如果只显示:
2.8.0还需要进一步确认具体安装包。
本文:
2.8.0+cu129明确说明当前安装的是:
PyTorch 2.8.0 CUDA 12.9构建。
17. 第二步:检查CUDA是否可用
执行:
print(torch.cuda.is_available())本文得到:
True这是PyTorch GPU环境最核心的检测之一。
如果输出:
True说明:
PyTorch已经能够正常访问CUDA设备。
如果输出:
False则需要继续检查:
是否安装CPU版PyTorch NVIDIA驱动是否正常 GPU是否被系统识别 PyTorch CUDA构建是否正确 环境是否装错18. 第三步:检查PyTorch识别到了哪张显卡
执行:
print(torch.cuda.get_device_name(0))本文输出:
NVIDIA GeForce RTX 5070这一步非常重要,因为它说明:
PyTorch不仅检测到了CUDA,而且已经成功识别实际GPU设备。
最终验证结果:
>>>importtorch>>>print(torch.__version__)2.8.0+cu129>>>print(torch.cuda.is_available())True>>>print(torch.cuda.get_device_name(0))NVIDIA GeForce RTX5070到这里就可以认为:
RTX 5070的PyTorch GPU环境已经完整打通。
19. 还可以进行更完整的GPU检测
除了上面三条,还可以执行:
importtorchprint("PyTorch版本:",torch.__version__)print("CUDA是否可用:",torch.cuda.is_available())print("PyTorch CUDA版本:",torch.version.cuda)print("GPU数量:",torch.cuda.device_count())iftorch.cuda.is_available():print("当前GPU:",torch.cuda.get_device_name(0))预期结果类似:
PyTorch版本: 2.8.0+cu129 CUDA是否可用: True PyTorch CUDA版本: 12.9 GPU数量: 1 当前GPU: NVIDIA GeForce RTX 5070这比只看:
torch.cuda.is_available()更加完整。
20. 进一步测试:真正创建一个CUDA Tensor
有时候仅仅检查:
torch.cuda.is_available()还不够直观。
可以直接创建一个GPU Tensor:
importtorch x=torch.randn(3,3).cuda()print(x)print(x.device)如果最后显示:
cuda:0说明这个Tensor已经真实存放在GPU显存中。
也可以写成:
device=torch.device("cuda"iftorch.cuda.is_available()else"cpu")x=torch.randn(3,3).to(device)print(x.device)输出:
cuda:0这就是更加直接的CUDA运行测试。
21. 深度学习代码中怎么让模型使用RTX 5070?
以后自己的PyTorch代码中推荐这样写:
importtorch device=torch.device("cuda"iftorch.cuda.is_available()else"cpu")print("当前设备:",device)然后将模型放到GPU:
model=model.to(device)数据也要放到相同设备:
x=x.to(device)y=y.to(device)例如:
forx,yintrain_loader:x=x.to(device)y=y.to(device)output=model(x)只要:
torch.cuda.is_available()为:
True这里:
device就会自动选择:
cuda也就是RTX 5070。
22. 一个非常容易误解的问题:必须安装本地CUDA Toolkit吗?
很多人认为:
使用PyTorch GPU之前,一定要先安装和PyTorch完全相同版本的CUDA Toolkit。
实际上对于PyTorch官方提供的CUDA wheel来说,并不总是如此。
例如:
torch-2.8.0+cu129本身已经带有运行PyTorch所需的一套CUDA相关运行时依赖。
因此对于普通PyTorch训练任务,更核心的是:
正确的NVIDIA显卡驱动 + 正确的PyTorch CUDA构建而不是:
系统必须另外安装一个完全相同版本的CUDA Toolkit。
只有在一些特殊场景,例如:
编译自定义CUDA扩展 CUDA C/C++开发 某些第三方库需要nvcc时,本地CUDA Toolkit才更加重要。
所以:
torch.version.cuda和:
nvcc --version反映的并不一定是同一个东西。
23. PyTorch中的cu129和系统CUDA不是同一个概念
假设:
print(torch.version.cuda)输出:
12.9表示:
当前PyTorch是基于CUDA 12.9相关运行时构建的。
而执行:
nvcc --version显示的是:
本机安装的CUDA Toolkit编译器版本。
执行:
nvidia-smi看到的:
CUDA Version主要和当前NVIDIA驱动支持能力有关。
因此三个地方的CUDA版本:
nvidia-smi nvcc --version torch.version.cuda出现不同数字,并不一定意味着环境有问题。
这是配置PyTorch时非常容易混淆的一点。
24. 常见错误一:not a supported wheel on this platform
如果出现:
xxx.whl is not a supported wheel on this platform优先检查:
python --version以及:
where python然后查看wheel名称。
例如:
cp311必须对应:
Python 3.11如果实际Python是:
3.13就会直接不兼容。
25. 常见错误二:环境名前面显示正确,但Python版本不对
例如:
(pytorchgpu) C:\Users\xxx>看起来进入了环境。
但:
python --version却是:
Python 3.13.9这种情况下不要继续安装任何包。
一定继续检查:
where python真正激活后应该指向:
...\envs\pytorchgpu\python.exe26. 常见错误三:torch.cuda.is_available()返回False
如果:
torch.cuda.is_available()返回:
False可以按照以下顺序排查:
1. nvidia-smi能否识别显卡 ↓ 2. torch.__version__是什么 ↓ 3. 是否安装了CUDA版PyTorch ↓ 4. torch.version.cuda是否有值 ↓ 5. 当前Python是否来自正确环境 ↓ 6. 是否误装了CPU版torch例如:
print(torch.__version__)print(torch.version.cuda)如果:
torch.version.cuda为:
None通常需要重点怀疑安装的是CPU构建。
27. 常见错误四:pip把库装到了错误的Python中
如果电脑中存在多个Python:
Python 3.13 Python 3.11 Conda base Conda pytorchgpu不建议只执行:
pip install xxx建议:
python -m pip install xxx还可以提前检查:
python -m pip --version确保路径中包含:
pytorchgpu28. 普通CMD不能正常activate怎么办?
即使普通CMD中的:
conda activate pytorchgpu存在问题,也不是不能安装软件包。
可以执行:
conda run -n pytorchgpu python -m pip install numpy或者直接指定Python:
"C:\Users\用户名\.conda\envs\pytorchgpu\python.exe" -m pip install numpy因此:
使用PyTorch并不是只能依赖Anaconda PowerShell Prompt。
只要最终调用的是正确解释器即可。
不过如果Anaconda PowerShell Prompt可以正常激活,日常使用它通常最省心。
29. 本次完整安装逻辑
整个流程可以总结成:
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. 推荐的最终验证代码
环境安装结束后,可以保存下面代码为:
test_gpu.py内容:
importtorchprint("="*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()}")iftorch.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)执行:
python test_gpu.py如果得到类似:
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. 本次最终配置
最终成功环境:
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也就是:
Python 3.11 ↓ PyTorch 2.8.0 ↓ CUDA 12.9 Runtime ↓ NVIDIA RTX 5070 ↓ GPU深度学习环境成功32. 总结
这次配置过程中最值得记住的并不是某一条安装命令,而是以下几个原则。
第一:
下载PyTorch wheel时一定要看Python版本。
例如:
cp311 → Python 3.11 cp312 → Python 3.12 cp313 → Python 3.13第二:
终端显示
(pytorchgpu)并不能替代Python版本检查。
始终建议执行:
python --version以及:
where python第三:
安装Python软件包建议使用
python -m pip。
例如:
python -m pip install xxx第四:
不要简单要求nvidia-smi、本地CUDA Toolkit和PyTorch CUDA版本三个数字完全一致。
它们代表的概念并不完全相同。
第五:
判断PyTorch GPU是否真正成功,最有说服力的是运行结果。
本文最终结果:
print(torch.__version__)输出:
2.8.0+cu129print(torch.cuda.is_available())输出:
Trueprint(torch.cuda.get_device_name(0))输出:
NVIDIA GeForce RTX 5070这三个结果同时成立,说明:
Python 3.11 → PyTorch 2.8.0 → CUDA 12.9 → RTX 5070这条GPU计算链已经完整打通。
附:常用检查命令
检查Python:
python --version检查Python路径:
where python检查pip:
python -m pip --version检查NVIDIA显卡:
nvidia-smi检查PyTorch版本:
importtorchprint(torch.__version__)检查PyTorch CUDA Runtime:
print(torch.version.cuda)检查CUDA:
print(torch.cuda.is_available())检查GPU:
print(torch.cuda.get_device_name(0))检查GPU数量:
print(torch.cuda.device_count())创建GPU Tensor:
x=torch.randn(3,3,device="cuda")print(x.device)如果最终得到:
cuda:0并且:
NVIDIA GeForce RTX 5070那么恭喜你:
PyTorch GPU环境已经配置完成,可以正式开始模型训练。