Skip to content

Tensor 与 Autograd

数据

Tensor

张量

神经网络的基础单元

tensor 概念 特点
leaf tensor 直接创建的张量 grad_fn 为 None, 在反向传播后会保留 .grad 属性
non-leaf tensor 通过操作其他张量生成的张量 grad_fn 为 操作函数 , 在反向传播时不会保留 .grad 属性

forward: leaf -> root backward: root -> leaf

Python
# 增删改查
<div markdown="1" style="margin-top: -30px; font-size: 0.75em; opacity: 0.7;">
:material-circle-edit-outline:  453 个字 :fontawesome-solid-code: 6 行代码 :material-clock-time-two-outline: 预计阅读时间 2 分钟
</div>

# 升降纬度
torch.squeeze()
torch.unsqueeze()
torch.permute() # 指定纬度顺序

Dataset 和 DataLoader

DataLoader 提供灵活加载Dataset的设置

数据划分

数据集 作用 占比
训练集(Training Set) 模型通过训练集学习特征和模式 70%-80%
验证集(Validation Set) 用于调整超参数、选择模型结构和监控模型在未见过的数据上的表现 10%-15%
测试集(Test Set) 用于评估模型的最终性能 10%-15%

批量处理

神经网络的损失函数通常是一个非凸函数,也就是说它可能存在多个局部最优解

批量处理的随机性有助于模型跳出局部最小值,找到全局最小值。 减少内存占用

鞍点

噪声较大

损失函数

作用: 计算模型准确度的工具, (预测结果与真实值之间的差异)

不同任务类型的需求:

  • 分类问题通常使用交叉熵损失Cross-Entropy Loss):

softmax: (0,1), 和为1 \(\text{Softmax}(x_{i}) = \frac{\exp(x_i)}{\sum_j \exp(x_j)}\)

  • 回归问题常用 均方误差(Mean Squared Error, MSE, L2损失)或 平均绝对误差(Mean Absolute Error, MAE, L1损失)

  • 推荐系统可能使用排序损失等

优化器

autograd 和 Computation Graph

Computation Graph是一种有向无环图(DAG),用于表示张量之间的数学运算关系. 记录了张量之间的操作和依赖关系,支持自动求导功能

多次计算梯度时, 需要设置 retain_graph=True

更新模型参数