当前位置: 首页 > news >正文

无锡网站建设解决方案深圳网站页面设计

无锡网站建设解决方案,深圳网站页面设计,软件开发公司赚钱吗,网站开发环境lmnp文章目录 1、概述2、BN层3、LN层4、Pytorch的实现5、BN层和LN层的对比 1、概述 归一化(Normalization) 方法:指的是把不同维度的特征(例如序列特征或者图像的特征图等)转换为相同或相似的尺度范围内的方法,比如把数据特征映射到[…

文章目录

  • 1、概述
  • 2、BN层
  • 3、LN层
  • 4、Pytorch的实现
  • 5、BN层和LN层的对比

1、概述

  • 归一化(Normalization) 方法:指的是把不同维度的特征(例如序列特征或者图像的特征图等)转换为相同或相似的尺度范围内的方法,比如把数据特征映射到[0, 1]或[−1, 1]区间内,或者映射为服从均值为0、方差为1的标准正态分布。
  • 那为什么要进行归一化?

样本特征由于来源和度量单位的不同或者经过多个卷积层处理后导致不同来源或者不同卷积层的输入特征尺度存在较大差异,模型的优化方向可能会被尺度较大的特征所主导。而进行归一化可以使得尺度大致处于同一范围内,从而有利于模型的训练和优化。

  • BN层(Batch Normalization):是在不同样本之间进行归一化。
  • LN层(Layer Normalization):是在同一样本内部进行归一化。
  • 以下的图简单展示了二者的区别:
    在这里插入图片描述
    参考链接:https://blog.csdn.net/qq_44397802/article/details/128452207

2、BN层

  • 下图很清晰的解释了BN层:由于是Batch Normalization,那么简单来说,就是针对Batch中的不同样本之间求均值和标准差,再做归一化

1)如下图,针对神经元的输出进行BN,确定Batch size为N,但是不同类型样本的维度可能不一样(下图中维度为1,例如图像经过卷积以后维度为C × \times ×H × \times ×W)
2)不论维度为多少,各个样本之间的维度是相同的,因此针对不同样本之间的对应维度计算出均值和标准差,肯定与每个样本的维度相同(下图中,均值和标准差都为一维,对于图像,均值和标准差的维度为C × \times ×H × \times ×W)
3)针对每个神经元训练一组可学习的参数 γ \gamma γ β \beta β,用于对输出的每个响应值做缩放和平移。
4)注意如果样本为一维,可学习参数的组数与输出的响应值的数量相等,也与神经元的个数相等;如果样本是图像,输入为N × \times ×C1 × \times ×H × \times ×W,卷积核个数为C2,那么输出为N × \times ×C2 × \times ×H × \times ×W,因此可学习参数的组数与输出通道数相等,为C2,也与卷积核个数相等。
5)所以简单来说,可学习参数的组数就与通道数相等。

在这里插入图片描述

3、LN层

  • 一般来说,层归一化所做的就是,对于图像,即输入为N × \times ×C × \times ×H × \times ×W的特征图:在每个样本内部,计算所有像素点的均值和标准差,并针对每个像素点训练一组可学习参数 γ \gamma γ β \beta β,用于进行缩放和平移,以归一化到同一范围内。

  • 如下图所示,针对的是一个样本中的所有通道内的所有像素。也就是说和Batch无关。

  • 因此可学习参数的组数就等于C × \times ×H × \times ×W。
    在这里插入图片描述

  • 计算公式:
    在这里插入图片描述

4、Pytorch的实现

  • BN层的实现:
torch.nn.BatchNorm2d(num_features, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True, device=None, dtype=None)
''
num_features:输入尺寸为(N,C,H,W),则该值为C
''
  • LN层的实现:
torch.nn.LayerNorm(normalized_shape, eps=1e-05, elementwise_affine=True, device=None, dtype=None)
''
1)normalized_shape:归一化的尺寸,输入的尺寸必须符合:[∗×normalized_shape[0]×normalized_shape[1]×…×normalized_shape[1]]
如果为单个整数,则对最后一维进行归一化
2)elementwise_affine:是否具有可学习的参数,默认为True
''
  • 如下为BN和LN层的实现,以及参数量的计算
import torch
from torch import nn# NLP Example
batch, sentence_length, embedding_dim = 20, 5, 10
embedding = torch.randn(batch, sentence_length, embedding_dim)
layer_norm = nn.LayerNorm(embedding_dim)
print(layer_norm)
param_num = sum([param.numel() for param in layer_norm.parameters()])
print(param_num)
output_embed = layer_norm(embedding)
print(output_embed.shape)
  • 输出为:
LayerNorm((10,), eps=1e-05, elementwise_affine=True)
20
torch.Size([20, 5, 10])
import torch
from torch import nn# Image Example
N, C, H, W = 20, 5, 10, 10
input0 = torch.randn(N, C, H, W)
# Normalize over the last three dimensions (i.e. the channel and spatial dimensions)
layer_norm = nn.LayerNorm([C, H, W]) # 参数量为C*H*W*2
print(layer_norm)
param_num = sum([param.numel() for param in layer_norm.parameters()])
print(param_num)
output = layer_norm(input0)
print(output.shape)input1 = torch.randn(N, C, H, W)
batch_norm = nn.BatchNorm2d(C) # 参数量为C*2
print(batch_norm)
param_num1 = sum([param.numel() for param in batch_norm.parameters()])
print(param_num1)
output1 = batch_norm(input1)
print(output1.shape)
  • 输出为:
LayerNorm((5, 10, 10), eps=1e-05, elementwise_affine=True)
1000
torch.Size([20, 5, 10, 10])
BatchNorm2d(5, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
10
torch.Size([20, 5, 10, 10])

5、BN层和LN层的对比

  • 简单对比如下:
    在这里插入图片描述

参考链接:https://blog.csdn.net/hymn1993/article/details/122719043

http://www.hkea.cn/news/704117/

相关文章:

  • 英文网站建设 淮安免费培训网站
  • 隔离需要多少钱湖南网站seo找行者seo
  • wordpress简单企业站seo怎么刷排名
  • 网站建设与运维泉州全网推广
  • 网站建站哪个公司好一点营销咨询服务
  • 值得玩的网页游戏北京seo营销培训
  • 中国建设银行网站分期通百度推广登录平台网址
  • 公司内部网站源码新闻软文推广案例
  • vf建设银行网站谷歌seo排名
  • 如何申请商业服务器武汉seo工厂
  • 祥云平台英文网站微博指数查询入口
  • 公司网站建设准备资料今日重大财经新闻
  • 发布网站后备案免费网站建站页面
  • 浙江建设职业技术学院迎新网站做一个网站要多少钱
  • axure做网站好不好手机百度问一问
  • 开发微信小程序的流程广州seo优化电话
  • 小企业网站建设和管理全能搜
  • 无棣县建设局网站游戏优化大师下载安装
  • 小额贷款 网站模板品牌推广软文
  • 网站建设开发成本天津百度搜索网站排名
  • 做的好的营销型网站有哪些内容外贸网站外链平台
  • 东营网站建设预算价格百度网盘网页版入口官网
  • 网站建设中标公告18款禁用看奶app入口
  • 网站运营人员岗位职责长沙正规seo优化价格
  • cnzz统计代码放在后台网站为什么没显示seo的英文全称是什么
  • 杭州企业网站建设方案广告门
  • 自己免费做网站(二)seo优化公司信
  • 广州外贸b2b网站建设刷钻业务推广网站
  • 做企业网站用什么怎样宣传自己的品牌
  • 濮阳做网站的公司我的百度账号