深度学习入门文档深度页
PyTorch Tensor 与 nn.Module
用 Tensor 表示数据,用 Module 管理层、参数、buffer 和前向。
学习目标
- 检查四个 Tensor 属性
- 编写 Module
- 区分 Parameter/buffer
为什么需要这个概念
安全训练必须明确数据、参数和状态在何处、以什么类型存在。
- PyTorch 全部代码基础
- 避免设备和未注册参数错误
学习前需要掌握
张量与矩阵内容待补充
背景与问题
安全训练必须明确数据、参数和状态在何处、以什么类型存在。
概念定义
Tensor 具有 shape、dtype、device、requires_grad;Module 注册子模块和状态。
直观理解
Tensor 是数据容器,Module 是会管理状态的计算单元。
核心原理
通过 model(x) 调用 forward;Parameter 参与优化,buffer 随模型移动和保存但不训练。
state_dict 保存参数与持久 buffer,不保存类定义。
数学表达
核心公式
Linear 对最后一维做仿射变换。
变量含义
X[N,in_features] 输入W[out_features,in_features] 参数
计算步骤
- 1矩阵乘 W^T
- 2广播 b
代码对应位置
示例 1PyTorch Tensor 与 nn.Module · PyTorch 示例:验证PyTorch Tensor 与 nn.Module的输入、计算和输出。
变量解释
| 变量 | 含义 |
|---|---|
X | [N,in_features] 输入 |
W | [out_features,in_features] 参数 |
完整数值示例
Linear 形状
已知条件
- X [8,10]
- Linear(10,4)
- 1
矩阵乘 W^T
- 2
广播 b
Y [8,4]
处理前后对比
计算与实现步骤
- 1
创建 Tensor
- 2
检查属性
- 3
定义 Module
- 4
注册层
- 5
实现 forward
- 6
随机输入验证
代码实现
示例 1
PyTorch Tensor 与 nn.Module · PyTorch 示例
PyTorch Tensor 与 nn.Module · PyTorch 示例
PyTorch
example_01.py用途:验证PyTorch Tensor 与 nn.Module的输入、计算和输出。
class Tiny(nn.Module):
def __init__(self):
super().__init__();self.fc=nn.Linear(10,4)
def forward(self,x):return self.fc(x)
print(Tiny()(torch.randn(8,10)).shape)代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
验证PyTorch Tensor 与 nn.Module的输入、计算和输出。
Step 1 · 1–5 行
输出中间参数、形状或最终指标,用于核对代码是否符合预期。
class Tiny(nn.Module):
def __init__(self):
super().__init__();self.fc=nn.Linear(10,4)
def forward(self,x):return self.fc(x)
print(Tiny()(torch.randn(8,10)).shape)预期输出或运行结果
torch.Size([8,4])。
常见错误 · 5 条
- 普通列表存层
- 直接 forward
- 只 eval 以为无梯度
- state_dict 当结构
- 确认样本轴、特征轴以及 X 与 y 的第一维完全对应。
实际应用
- 所有 PyTorch 模型
常见错误
普通列表存层
直接 forward
只 eval 以为无梯度
state_dict 当结构
文档来源
10_PyTorch张量与模块基础原始文档
学习资料/deeplearning/10_PyTorch张量与模块基础.md- §1 Tensor
- §9 Module
- §10 Parameter/buffer
- §11 state_dict
常见问题
buffer 会保存吗?
持久 buffer 会进入 state_dict。
为何用 model(x)?
会经过 Module 管理的 hooks 等机制。
推荐学习资料
官方文档A 级
PyTorch Tutorials
从张量、数据加载、自动微分和网络训练逐步进入视觉、NLP、性能与部署。
PyTorch Contributors · PyTorch
资料笔记
GitHub 仓库A 级
pytorch/examples
提供视觉、文本、强化学习和分布式训练等 PyTorch 参考示例。
PyTorch · GitHub
仓库信息
运行和研究常见 PyTorch 模型示例
主要语言:Python包含数据集或实验需要额外环境