PyTorch[1][2] 是当前主流的深度学习框架之一,Faceboook与 2017 年初开源出来,更简洁的 api,深受学术界人士的喜爱,有人把它比作深度学习框架中的Python(Python在编程语言中也以简洁出名)。
- 目前在深度学习中有两个大的框架(当然还有很多其他框架),一是
PyTorch,二是Google的Tensorflow,主流观点是tf在工程方面有优势,PyTorch在学术研究方面有优势。两个框架都在开源社区的推动下快速发展,目前都在成长期,更新也比较频繁。
我选择了学习 PyTorch ,主要是一开始涉猎 dl 就关注着它(具体是它开始支持 Windows 平台时候)。
# PyTorch 安装
任何安装教程都具有时效性,尤其是处在旺盛开发阶段的项目,这点毋庸置疑。
我的安装环境是:
- 操作系统:
Windows 11 家庭版 24H2 - 显卡:
NVIDIA GeForce RTX 5070 Laptop GPU[3] - 显卡驱动版本:
580.88 - Cuda 版本:
12.8 - Cudnn 版本:
9.12 - PyTorch 版本:
2.8
Cuda 是 Nvidia 的技术,只支持一部分 Nvidia 显卡
一般安装过程是:
- 更新驱动(最新稳定版驱动就行,也可以去官网下 NVIDIA 驱动程序下载,选择显卡型号就可以)
- 下载[4][5][6]并安装 Cuda,一般大版本的框架发布出来支持的 cuda 版本就是固定的,最新版 cuda 不是很好的选项
- 下载[7] cudnn(
下载 cudnn 需要注册 Nvidia 开发者账号现在好像不用注册就能直接下到),解压并放到一个固定的路径(一般放到 cuda 安装路径,不过其实随便,最终要到系统环境变量里找的) - 配置环境变量
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\bin | |
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\libnvvp | |
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\extras | |
C:\Program Files\NVIDIA\CUDNN\v9.12\bin\12.8 |
(其实还有 CUDA_PATH 和 CUDA_PATH_V12_8 ,我觉得可选,就只是个根目录)
- 验证 Cuda:
nvcc -V |
有 cuda 信息就行
- 安装
conda并创建pytorch虚拟环境
conda create -n pytorch python=3.12 |
- 安装
PyTorch,进入官网,点Get Started,选择项如下:![安装]()
激活pytorch虚拟环境:
conda activate pytorch | |
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu128 |
- 验证 PyTorch:
conda activate pytorch | ||
python | ||
Python 3.12.11 | packaged by Anaconda, Inc. | (main, Jun 5 2025, 12:58:53) [MSC v.1929 64 bit (AMD64)] on win32 | ||
Type "help", "copyright", "credits" or "license" for more information. | ||
import torch # 导包,导入报错就搜索下搜索引擎 | ||
torch.__version__ | ||
'2.8.0+cu128' | ||
torch.version.cuda | ||
'12.8' | ||
torch.cuda.is_available() # 输出 True 表示 CUDA 可用 | ||
True | ||
torch.cuda.device_count() # 显示可用 GPU 数量 | ||
1 | ||
torch.cuda.get_device_name(0) # 显示第一个 GPU 的名称 | ||
'NVIDIA GeForce RTX 5070 Laptop GPU' | ||
# cuda 测试 | ||
x = torch.tensor([1.]) | ||
x = x.cuda() # 数据放置于 gpu | ||
x | ||
tensor([1.], device='cuda:0') | ||
# cudnn 测试 | ||
from torch.backends import cudnn | ||
cudnn.version() # 显示 cuDNN 版本号 | ||
91002 | ||
cudnn.is_available() # 输出 True 表示 cuDNN 可用 | ||
True | ||
cudnn.is_acceptable(x) | ||
True |
