DAY 34

一、核心基础:网络权重到底是什么?

1. 权重的作用

神经网络的所有知识、学习到的特征,全部储存在权重参数中。

  • 浅层权重:学习基础特征(线条、边缘、纹理)

  • 深层权重:学习高级特征(轮廓、局部结构、完整物体)

  • 激活函数(ReLU等)没有任何权重参数,仅做数值变换

简单理解:权重就是网络的特征模板,通过权重与输入数据运算,实现特征提取和结果预测。

2. 权重的初始状态与变化

  • 初始化阶段 :所有权重都是符合规则的随机数(不是纯乱数,Xavier/He初始化,保证数值合理),每层权重分布天然不同(通道数不同,随机分布参数不同)。

  • 训练阶段 :通过反向传播、梯度下降,不断修改随机权重,让权重适配任务,这个过程就是权重偏移

3. 什么是权重偏移?

训练过程中,权重分布从初始化的「0附近标准正态分布」发生改变,分为两种情况:

  • 整体偏移:所有权重整体偏向正数/负数,均值远离0

  • 离散变化:均值不变,但权重散开(学得充分)或扎堆归零(梯度消失、失效)

核心公式:w_new = w_old - lr * grad,梯度持续同向,就会推动权重整体偏移。

二、训练 vs 测试(推理)核心区别

1. 训练阶段(完整流程)

前向传播 → 计算Loss → 反向传播求梯度 → 优化器更新权重

会改变权重,网络一直在学习迭代

2. 测试/推理阶段(极简流程)

仅进行前向传播,不反向传播、不计算梯度、不更新权重

权重完全固定不变,只用训练好的模型做预测

3. 测试必备代码规范

model.eval() # 关闭Dropout、冻结BN层 with torch.no_grad(): # 关闭梯度计算,节省显存、提速 pred = model(x) # 仅前向传播推理

三、BatchSize 与 维度详解

1. 什么是 batch_size=32?

32是人为设置的超参数(经验默认值),意思是:一次性给网络喂32个样本,批量计算梯度、更新权重。

可以随意修改为 8、16、64,不改变网络结构。

2. 单样本维度 & 批量维度区别

  • 模型定义、summary参数:只写单个样本维度,不带batch

  • 真实训练张量:自动在最前面拼接batch维度

  • 网络输出的 -1:代表batch维度占位符,适配任意批量大小

3. 常见模型 input_size 写法对照表

模型类型 单样本input_size batch=32真实维度
MLP全连接网络 (4,) (32, 4)
CNN图像网络 (3,224,224) (32, 3, 224, 224)
RNN时序网络 (10,5) (32, 10, 5)

⚠️禁止在input_size中写入batch大小!

四、PyTorch 模型查看工具

1. 原生方法(无需安装)

  • print(model):打印网络层级结构,无参数量

  • model.named_parameters():遍历所有权重、偏置,可做权重统计、可视化(直方图、均值、标准差、极值)

2. torchsummary / torchinfo(推荐)

作用:打印每层输出shape、单层参数量、总参数量、可训练参数

核心原理:构造虚拟样本,执行一次前向传播,推导网络结构信息

安装命令:pip install torchinfo

使用示例:summary(model, input_size=(4,))

五、MLP全连接网络构建规则

  1. 无显式输入层:输入维度由第一个Linear层的第一个参数决定

  2. 隐藏层:必须手动指定输出神经元个数

  3. 输出层:神经元数量对应任务类别数(3分类=3个输出神经元)

参数量计算示例

nn.Linear(10,3)

  • 权重参数:10*3 = 30

  • 偏置参数:3

  • 总参数:33

六、权重可视化的作用

通过绘制每层权重直方图、统计指标(均值/标准差/最大最小值),排查网络训练问题:

  • 标准差过小:权重趋近于0,梯度消失,层级失效

  • 极值过大:权重数值爆炸,梯度爆炸,训练不稳定

  • 分布均匀散开:网络训练正常,学到有效特征

@浙大疏锦行

相关推荐
leisoo80971 小时前
涨停板次日表现因子怎么挖掘本地化Python全流程实战
大数据·人工智能·python
像颗糖1 小时前
AG-UI:把 Agent 与前端之间的“私有暗号”变成标准协议
python·agent·ai编程
Zane19941 小时前
类也是对象?一文讲透元类 metaclass 这件"深度魔法"
后端·python
Fanta丶1 小时前
3.FastAPI ORM建表
python
云水初2 小时前
【agent篇】RAG 知识库构建避坑指南
开发语言·python·学习·agent·rag
2019一路前行2 小时前
Python 函数、循环语句
开发语言·python
qxqycb3 小时前
python一键反编译工具
python
weixin_BYSJ19873 小时前
springboot技能与工具共享小程序---附源码29657
java·javascript·spring boot·python·小程序·django·php
weixin_BYSJ19873 小时前
flask民族服饰饰品商城小程序---附源码37399
java·javascript·spring boot·python·小程序·django·php