深度学习入门文档深度页
前向传播
使用当前参数从输入逐层计算预测,不更新参数。
学习目标
- 区分前向与更新
- 跟踪每层形状
- 识别 logits
为什么需要这个概念
只有得到预测,才能计算损失并开始反向传播。
- 训练循环第一步
- 确定张量形状和计算图
学习前需要掌握
神经网络张量内容待补充
背景与问题
只有得到预测,才能计算损失并开始反向传播。
概念定义
前向传播执行模型定义的计算图,输出 logits、概率参数或连续预测。
直观理解
像把数据沿流水线送过每个加工站,先得到结果再评价。
核心原理
每层输出成为下一层输入;此过程构建 Autograd 计算图,但没有调用 optimizer.step。
训练与推理都执行前向,区别在模块模式和是否记录梯度。
数学表达
核心公式
f_l 是第 l 层变换。
变量含义
x模型输入ŷ当前参数产生的预测
计算步骤
- 1z=1.5×2+0.5
代码对应位置
示例 1前向传播 · PyTorch 示例:验证前向传播的输入、计算和输出。
变量解释
| 变量 | 含义 |
|---|---|
x | 模型输入 |
ŷ | 当前参数产生的预测 |
完整数值示例
简单线性前向
已知条件
- x=2
- w=1.5
- b=0.5
- 1
z=1.5×2+0.5
预测 z=3.5
处理前后对比
计算与实现步骤
- 1
读取 batch
- 2
移动设备
- 3
调用 model(x)
- 4
检查输出形状
- 5
送入损失
代码实现
示例 1
前向传播 · PyTorch 示例
前向传播 · PyTorch 示例
PyTorch
example_01.py用途:验证前向传播的输入、计算和输出。
model.train()
x=torch.randn(16,10)
logits=model(x)
print(logits.shape)代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
验证前向传播的输入、计算和输出。
model- 组合预处理和估计器的模型对象。
Step 1 · 1–4 行
输出中间参数、形状或最终指标,用于核对代码是否符合预期。
model.train()
x=torch.randn(16,10)
logits=model(x)
print(logits.shape)预期输出或运行结果
输出形状由任务头决定。
常见错误 · 4 条
- 直接调用 model.forward
- 认为前向会更新参数
- 设备不一致
- 确认样本轴、特征轴以及 X 与 y 的第一维完全对应。
实际应用
- 训练
- 验证
- 推理
常见错误
直接调用 model.forward
认为前向会更新参数
设备不一致
文档来源
02_神经网络的训练与优化原始文档
学习资料/deeplearning/02_神经网络的训练与优化.md- §2 前向传播
- §8 PyTorch 标准训练流程
常见问题
前向会改变权重吗?
不会,参数更新由 optimizer.step 完成。
验证也需要前向吗?
需要,但通常关闭梯度并使用 eval 模式。
推荐学习资料
暂未收录相关资料
参考库不会生成虚假资源或无效外部链接。