| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> nn.BatchNorm讲解,nn.BatchNorm1d nn.BatchNorm2d代码演示 -> 正文阅读 |
|
[人工智能]nn.BatchNorm讲解,nn.BatchNorm1d nn.BatchNorm2d代码演示 |
1 nn.BatchNorm??????? BatchNorm是深度网络中经常用到的加速神经网络训练,加速收敛速度及稳定性的算法,是深度网络训练必不可少的一部分,几乎成为标配; ????????BatchNorm 即批规范化,是为了将每个batch的数据规范化为统一的分布,帮助网络训练, 对输入数据做规范化,称为Covariate shift; ??????? 数据经过一层层网络计算后,数据的分布也在发生着变化,因为每一次参数迭代更新后,上一层网络输出数据,经过这一层网络参数的计算,数据的分布会发生变化,这就为下一层网络的学习带来困难 -- 也就是在每一层都进行批规范化(Internal Covariate shift),方便网络训练,因为神经网络本身就是要学习数据的分布; ??????? 下面通过代码掩饰BatchNorm的作用; ??????? 首先要清楚,BatchNorm后是不改变输入的shape的; ????????nn.BatchNorm1d: N * d --> N * d ????????nn.BatchNorm2d: N * C * H * W? -- > N * C * H * W ????????nn.BatchNorm3d: N * C * d * H * W --> N * C * d * H * W 下面讲解nn.BatchNorm1d,和nn.BatchNorm2d的情况 1.1 nn.BatchNorm1d??????? 首先看其参数:
??????? 主要参数介绍: ??????????????? num_features: 输入维度,也就是数据的特征维度; ??????????????? eps: 是在分母上加的一个值,是为了防止分母为0的情况,让其能正常计算; ??????????????? affine: 是仿射变化,将,分别初始化为1和0; ??????? 使用方法介绍: ????????主要作用在特征上,比如输入维度为N*d, N代表batchsize大小,d代表num_features; ????????而nn.BatchNorm1d是对num_features做归一化处理,也就是对批次内的特征进行归一化; 如输入 N = 5(batch_size = 5), d = 3(数据特征维度为3); ???????? 上图中的r, b是可学习的参数,文档中成为放射变换,文档中称为,? 可以使用x.weight 和 x.bias获得, r初始化值为1,b初始化值为0; ??????? 上图中方差的计算是采用的有偏估计; ??????? 归一化处理公式: ???????????????? E(x)表示均值, Var(x)表示方差;表示为上述参数的eps,防止分母为0 的情况; ??????? 演示代码:
?采用普通方法实现BatchNorm:
1.2 nn.BatchNorm2d首先看其参数:
使用方法介绍: ??????? 主要作用在特征上,比如输入维度为B*C*H*W, B代表batchsize大小,C代表channel,H代表图片的高度维度,W代表图片的宽度维度; ??????? 而nn.BatchNorm2d是对channel做归一化处理,也就是对批次内的特征进行归一化; 如输入B * C * H * W = (2 * 3 * 2 * 2): ???????? 计算的均值和方差的方式实际上是把batch内对应通道的数据拉平计算; ??????? 演示代码:
??????? 关于均值方差的计算方法演示:
参考:[pytorch 网络模型结构] 深入理解 nn.BatchNorm1d/2d 计算过程_哔哩哔哩_bilibili |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 23:22:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |