PyTorch是Meta开发的开源深度学习框架,以动态计算图为核心,支持GPU加速、自动求导及丰富模块;安装需按系统和CUDA版本选择命令;构建网络需准备数据、定义模型、设置训练要素并执行循环;核心概念包括Tensor、autograd、nn.Module和torch.no_grad()。

Python PyTorch 是什么
PyTorch 是一个开源的深度学习框架,由 Facebook(现 Meta)开发并维护。它以动态计算图(Dynamic Computation Graph)为核心设计,让模型构建和调试更直观、灵活——你可以像写普通 Python 代码一样定义网络结构和前向传播过程,无需预先声明整个图结构。
它原生支持 GPU 加速,自动求导(autograd),并提供丰富的神经网络模块(torch.nn)、数据加载工具(torch.utils.data)和优化器(torch.optim),是科研和工业界广泛使用的主流框架之一。
安装 PyTorch 的关键步骤
访问 https://pytorch.org/get-started/locally/,根据你的系统(Windows/macOS/Linux)、包管理器(pip/conda)、Python 版本和是否需要 CUDA 支持,选择对应命令安装。
- 最常见的是用 pip 安装 CPU 版本:
pip install torch torchvision torchaudio - 若显卡支持 CUDA 11.8,推荐安装 GPU 版本:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 - 安装后在 Python 中运行
import torch; print(torch.__version__, torch.cuda.is_available())验证是否成功及 GPU 是否可用
用 PyTorch 构建一个简单神经网络
以手写数字识别(MNIST)为例,从数据准备、模型定义、训练到评估,走通完整流程:
立即学习“Python免费学习笔记(深入)”;
-
准备数据:用
torchvision.datasets.MNIST下载并用DataLoader批量加载,配合transforms做归一化 -
定义模型:继承
nn.Module,在__init__中声明层(如nn.Linear或nn.Conv2d),在forward中写前向逻辑 -
设置训练要素:选损失函数(如
nn.CrossEntropyLoss)、优化器(如torch.optim.Adam)、训练轮数(epochs)和学习率 -
执行训练循环:对每个 batch 做前向计算 → 损失计算 →
loss.backward()反向传播 →optimizer.step()更新参数 →optimizer.zero_grad()清梯度
理解几个核心概念不绕弯
刚上手容易混淆的概念,其实有清晰对应关系:
- Tensor 是 PyTorch 的基本数据结构,类似 NumPy 的 ndarray,但可运行在 GPU 上,并支持自动微分
-
autograd 在 tensor 创建时通过
requires_grad=True开启梯度追踪,调用.backward()就自动算出所有参数梯度 - nn.Module 是所有神经网络模块的基类,不是“模块”而是“模板”——你写的模型类必须继承它,才能被正确注册参数、迁移到 GPU、保存加载
- torch.no_grad() 在推理或验证阶段包裹代码,可禁用梯度计算,节省内存并加速运行










