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 小时前
工业智能体:从Codex/Claude到项目实战~系列文章05:从“AI助手“到“工业智能体“:能力跃迁与落地范式
人工智能·python·claude·codex·工业智能体·高炉炼铁智能化
深蓝AI5 小时前
ContextVar 到线程池就丢了?asyncio.to_thread 和 run_in_executor 实测
python
岁月宁静6 小时前
什么是 Agent:从"会聊天"到"会做事"
人工智能·python
岁月宁静7 小时前
AI 应用开发工程师简历怎么写:HR 初筛、技术复筛、面试追问,三道关卡各看什么?
人工智能·python·面试
来让爷抱一个7 小时前
Python 异步里混用同步库,事件循环被卡住的全过程
开发语言·python
小肝一下9 小时前
3.基础语法(3)
python
深蓝AI9 小时前
Python 子进程树:父进程被杀后,孙进程为何还在跑?
python
心祭丫丫10 小时前
【每天一个 Python 小案例17】Python 实现通讯录
开发语言·人工智能·笔记·python·学习
爱你真是太好了10 小时前
Skill 索引瘦身与渐进加载
python
贾公子10 小时前
检测链路的容量规划——用 Little's Law 算清 QPS、并发与积压
后端·python