认识 PyTorch:张量、自动微分与模型的关系
认识 PyTorch:张量、自动微分与模型的关系
先理解计算框架的职责,再决定是否下载预训练权重。
认识 PyTorch:张量、自动微分与模型的关系知识学习CN编辑简报更新 2026-09-23
你将学会
- 从张量开始
- 梯度如何产生
- 本系列的证据范围
开始前需要
- 基本 Python 与微积分知识
- 供后续练习使用的独立环境
把数学预期与实际输出分开记录,用可解释的失败帮助学习。
先看结论
- 张量还包含类型与设备信息。
- 自动微分负责计算导数。
- 得到梯度不等于执行优化器更新。
从张量开始
PyTorch 为 Python 程序提供张量计算和自动微分。张量的形状、数据类型和设备位置都会影响运算,排查错误时应先确认这些属性。
第一个练习可以只用一个标量或很短的向量,让答案能够手算。直接加载大型预训练模型,会在理解计算之前引入格式和依赖问题。
梯度如何产生
自动微分记录可求导的运算,并按链式法则计算导数。标量损失可以产生可训练叶子张量的梯度,但计算梯度与更新参数是两个步骤。
本次检查的 backward 会累加梯度字段,而 autograd.grad 返回指定的导数。混淆这两种行为,可能留下旧梯度,也可能让训练循环没有真正更新参数。
本系列的证据范围
本系列固定阅读提交 4de991c,包括 Python 自动微分入口与安全政策。这里没有审计完整的原生执行引擎,也没有检查所有加速器后端。
本地检查使用的 Python 环境没有安装 PyTorch。文中的练习没有执行,预期数值来自数学推导,不能据此声称完成了训练或 GPU 性能测试。
如何选择
| 比较维度 | 方案 A | 方案 B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
实施步骤
- 1
检查形状、数据类型和设备。
- 2
选择导数已知的小计算。
- 3
分开理解求梯度和更新参数。
可复制示例
python
import torch
x = torch.tensor(3.0, requires_grad=True)
(x * x).backward()
print(x.grad) # 数学预期为 6,本系列未执行常见问题
PyTorch 是一个预训练模型吗?
它是框架,模型代码和权重是另外的产物。
这里运行过示例吗?
没有,预期值来自数学推导。
资料来源
- PyTorch / README.md来源核查 2026-09-23
- PyTorch / torch/autograd/__init__.py来源核查 2026-09-23