批量归一化(BN) 批量归一化产生的问题1顶部层训练快底部层训练慢损失Loss 在网络的最顶端输出端反向传播时靠近损失的层顶层直接收到梯度信号更新快靠近输入的底部层梯度要经过多层链式法则反向传播容易出现梯度消失和衰减更新非常慢2底部层一变顶部层全部白学内部协变量偏移最终产生的问题导致收敛变慢批量归一化就是为了解决这类问题每个需要归一化的维度都有一对独立的可学习的参数(γ,β)训练时通过反向传播自动学习作用的位置1全连接层或卷积层输出上激活函数前2全连接层或卷积层输入上作用的维度1全连接层作用在“特征维”假设输入形状为 (batch_size, num_features)BN 在每个特征维度上跨 batch 计算均值和方差。2卷积层作用在“通道维”假设输入形状为 (batch_size, channels, height, width)在每个通道上跨 batch、跨空间位置H×W计算均值和方差归一化到底在做什么还是有争议的工程走在了理论前面归一化通过固定数据分布和平滑优化地形让深层网络的训练从在崎岖山路上摸索变成在平滑大道上奔跑可以使用更大的学习率可以加速收敛但是不改变模型的精度具体实现实现一个具有张量的批量规范化层X为输入gamma和beta为两个参数moving_mean和moving_var为全局数据的均值和方差eps和momentum都有一定的值momentum负责更新全局均值和方差训练时梯度计算开启with torch.enable_grad() 或默认状态需要实时计算当前 batch 的均值方差并更新滑动平均推理时通常在 torch.no_grad() 环境下不计算梯度直接用训练期累积的滑动平均做归一化X可能为全连接层或者为卷积层如果输入为全连接层输入输入 X 形状(batch_size, num_features)dim0在 batch 维度上求平均结果 mean 形状(num_features,...,) 每个特征一个均值如果输入为2D卷积层输入计算出预测得出的Xhat更新全局的moving_mean和moving_var根据公式返回封装实现类的设计模式函数Module封装管理参数丶设备丶状态丶生命周期【示例】用在LeNet模型上简明实现直接调包nn.BatchNorm2d

相关新闻

最新新闻

Human Resource Machine 全成就通关 第38关

Human Resource Machine 全成就通关 第38关

效率 -- HUMAN RESOURCE MACHINE PROGRAM -- COPYFROM 11 ADD 11 ADD 11 COPYTO 8 COPYFROM 10 ADD 10 ADD 10 COPYTO 7 COPYFROM 9 COPYTO 3 BUMPUP 3 BUMPUP 3 BUMPUP 3 ADD 3 …

2026/7/28 18:02:00
instanceof, isinstance,isAssignableFrom的区别

instanceof, isinstance,isAssignableFrom的区别

总体来说isInstance和instanceOf都是用于判断一个对象是否是一个类或者接口的实现对象,但isInstance 因为.class对象可以动态获取因此泛用性更强,而isAssignableFrom则是用于两个类或者接口之间的比较instanceOfinstanceof运算符 只被用于对象引用变量&a…

2026/7/28 18:02:00
SpringBoot面试题

SpringBoot面试题

目录1.为什么使用SpringBoot2.SpringBootApplication注解的作用1.为什么使用SpringBoot 可以基于starter构建配置没有繁琐的xml配置嵌入式服务器自动装配技术 2.SpringBootApplication注解的作用 被这个注解标注的类会成为启动类,该类所在的位置

2026/7/28 18:02:00
【论文阅读+代码复现】GSPN:Generative Shape Proposal Network for 3D Instance Segmentation in Point Cloud

【论文阅读+代码复现】GSPN:Generative Shape Proposal Network for 3D Instance Segmentation in Point Cloud

Brief 这是一篇CVPR18上的文章,虽然表示是说的实例分割;但是听同组的同学的推荐,也可以做定位方面的事情,因此加入到了paperlist。 Abstruct Instead of treating object proposal as a direct bounding box regression problem…

2026/7/28 18:02:00
Python的标准库,random()

Python的标准库,random()

random()函数产生伪随机数,伪随机数是采用梅森旋转算法生成的(伪)随机序列中的元素,称为随机数基本随机函数:seed()、random()扩展随机函数:ranint()、getrandbits()、uniform()、randrange()、choice()、s…

2026/7/28 18:02:00
关于内部类的使用

关于内部类的使用

内部类的概述: 把类定义在其他类的内部,这个类就叫做内部类 例如:在类A中定义类B,那么类B就叫做内部类 内部类的访问特点: 内部类可以直接访问外部类的成员,包括私有 外部类要访问内部类的成员,…

2026/7/28 17:57:00

月新闻