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,梯度消失,层级失效

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

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

@浙大疏锦行

相关推荐
默_笙5 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
qq_426003965 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫5 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技5 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读5 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时5 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
奇思妙想聪明勤奋的小羊5 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd1235 天前
2026年第38周GitHub趋势周报
python·科技·github
IZero075 天前
Jev 与 Laya
python·语言模型