deep learning
layer
1. 线性层:linear layer / fully connected layer / dense layer
- 核心操作:内积计算 inner product / dot product 相乘再相加
- edge weight
- output node / bias
- 本质:线性层,不断叠加
2. 激活层:activation layer / nonlinearity
- 引入非线性因素,提高模型的表达能力
- ReLU: Rectified Linear Unit
3. model
- 由layer堆叠构成
- 继承 nn.Module 模块
- class 自定义一个类
- __init__
- 接受和处理超参数
- 实例化后续需要使用的层
- forward
- 接受一个批量的特征
- 根据算法逻辑,调用不同的层来处理数据
- __init__
4. 训练 train
- 做必要的准备,实例化必要的类:
- model
- optimizer
- loss_fn
- data_loader
- 流程:
- 遍历数据集加载器,取出一批数据
- 把特征X导入模型,做正向传播,得到预测结果y_pred
- 通过损失函数,计算预测结果和真实结果的误差 loss
- 根据loss做反向传播,计算每个参数的偏导数
- 利用优化器让每个参数减去偏导数,执行梯度下降的过程,优化一步
- 利用优化器清空每个参数的偏导数,为下次优化做准备
- 重复上面的过程,直到退出即可
5. 过程监控:
- 回归问题:
- get_loss
- 分类问题:
- get_acc
- get_recall
- get_precision
- get_f1_score
6. 保存模型
- 分离式保存
- 保存定义模型的类
- 保存模型训练完之后的权重