Windows下RTX 5070安装PyTorch GPU完整教程Python 3.11 PyTorch 2.8.0 CUDA 12.91. 前言最近在一台搭载NVIDIA GeForce RTX 5070的 Windows 电脑上重新配置 PyTorch GPU 深度学习环境。最终成功配置如下操作系统Windows 11 64位 GPUNVIDIA GeForce RTX 5070 Conda环境pytorchgpu Python3.11.16 PyTorch2.8.0cu129 PyTorch CUDA RuntimeCUDA 12.9 CUDA可用True最终验证结果importtorchprint(torch.__version__)print(torch.cuda.is_available())print(torch.cuda.get_device_name(0))输出2.8.0cu129 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.0cu129可以理解成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.0cu129-cp311-cp311-win_amd64.whl第一次看到这个文件名可能比较复杂其实可以拆成几部分torch │ ├── 2.8.0 │ ├── cu129 │ ├── cp311 │ ├── cp311 │ └── win_amd64分别代表2.8.0PyTorch版本PyTorch 2.8.0cu129代表CUDA构建版本CUDA 12.9因此2.8.0cu129就是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.0cu129-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.0cu129-cp311-cp311-win_amd64.whl可以解释为PyTorch 2.8.0 CUDA 12.9 CPython 3.11 Windows 64位。8. 本次第一次安装为什么失败进入下载目录后执行pip install torch-2.8.0cu129-cp311-cp311-win_amd64.whl结果出现ERROR: torch-2.8.0cu129-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进一步进入Pythonpython显示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首先进入下载目录cdF:\edge浏览器下载的内容确认python--version输出Python 3.11.16然后安装python-m pip installtorch-2.8.0cu129-cp311-cp311-win_amd64.whl由于此时当前Python3.11.16 wheelcp311 系统Windows 64位三者完全匹配因此可以正常安装。14. 安装torchvision对应的torchvision文件为torchvision-0.23.0cu129-cp311-cp311-win_amd64.whl同样执行python-m pip installtorchvision-0.23.0cu129-cp311-cp311-win_amd64.whl这样PyTorch和torchvision保持对应版本。本文最终组合为torch 2.8.0cu129 torchvision 0.23.0cu12915. 如果不想手动下载wheel怎么办也可以直接使用PyTorch对应软件源在线安装。基本形式为python-m pip install torch torchvision torchaudio--index-url 对应的PyTorch CUDA软件源在线安装的优点是pip会根据当前Python版本和操作系统选择对应wheel。因此可以减少手动下载cp311 cp312 cp313错误版本的概率。如果网络环境不稳定手动下载wheel后本地安装也完全可以。16. 安装完成后第一步检查PyTorch版本进入Pythonpython然后importtorch首先检查print(torch.__version__)本文输出2.8.0cu129这里非常关键。如果只显示2.8.0还需要进一步确认具体安装包。本文2.8.0cu129明确说明当前安装的是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设备。最终验证结果importtorchprint(torch.__version__)2.8.0cu129print(torch.cuda.is_available())Trueprint(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.0cu129 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 Tensorimporttorch xtorch.randn(3,3).cuda()print(x)print(x.device)如果最后显示cuda:0说明这个Tensor已经真实存放在GPU显存中。也可以写成devicetorch.device(cudaiftorch.cuda.is_available()elsecpu)xtorch.randn(3,3).to(device)print(x.device)输出cuda:0这就是更加直接的CUDA运行测试。21. 深度学习代码中怎么让模型使用RTX 5070以后自己的PyTorch代码中推荐这样写importtorch devicetorch.device(cudaiftorch.cuda.is_available()elsecpu)print(当前设备,device)然后将模型放到GPUmodelmodel.to(device)数据也要放到相同设备xx.to(device)yy.to(device)例如forx,yintrain_loader:xx.to(device)yy.to(device)outputmodel(x)只要torch.cuda.is_available()为True这里device就会自动选择cuda也就是RTX 5070。22. 一个非常容易误解的问题必须安装本地CUDA Toolkit吗很多人认为使用PyTorch GPU之前一定要先安装和PyTorch完全相同版本的CUDA Toolkit。实际上对于PyTorch官方提供的CUDA wheel来说并不总是如此。例如torch-2.8.0cu129本身已经带有运行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中如果电脑中存在多个PythonPython 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或者直接指定PythonC:\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.0cu129 ↓ 安装torchvision 0.23.0cu129 ↓ import torch ↓ torch.__version__ 2.8.0cu129 ↓ 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(fPyTorch version :{torch.__version__})print(fCUDA available :{torch.cuda.is_available()})print(fPyTorch CUDA :{torch.version.cuda})print(fGPU count :{torch.cuda.device_count()})iftorch.cuda.is_available():print(fGPU name :{torch.cuda.get_device_name(0)})devicetorch.device(cuda)xtorch.randn(3,3,devicedevice)print(fTensor device :{x.device})print(GPU test : SUCCESS)else:print(GPU test : FAILED)print(*50)执行python test_gpu.py如果得到类似PyTorch version : 2.8.0cu129 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.0cu129 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.0cu129print(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计算链已经完整打通。附常用检查命令检查Pythonpython --version检查Python路径where python检查pippython -m pip --version检查NVIDIA显卡nvidia-smi检查PyTorch版本importtorchprint(torch.__version__)检查PyTorch CUDA Runtimeprint(torch.version.cuda)检查CUDAprint(torch.cuda.is_available())检查GPUprint(torch.cuda.get_device_name(0))检查GPU数量print(torch.cuda.device_count())创建GPU Tensorxtorch.randn(3,3,devicecuda)print(x.device)如果最终得到cuda:0并且NVIDIA GeForce RTX 5070那么恭喜你PyTorch GPU环境已经配置完成可以正式开始模型训练。