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

辽宁建设银行企业银行官方网站阳江房产网站

辽宁建设银行企业银行官方网站,阳江房产网站,微信小程序开通需要多少钱,企业官方网站怎么建设文章目录 前言一、Group normalization二、批量规范化(Batch Normalization)三、层规范化(Layer Normalization) 前言 批量规范化和层规范化在神经网络中的每个批次或每个层上进行规范化,而GroupNorm将特征分成多个组,并在每个组内…

文章目录

  • 前言
  • 一、Group normalization
  • 二、批量规范化(Batch Normalization)
  • 三、层规范化(Layer Normalization)


前言

  批量规范化和层规范化在神经网络中的每个批次或每个层上进行规范化,而GroupNorm将特征分成多个组,并在每个组内进行规范化。这种规范化技术使得每个组内的特征具有相同的均值和方差,从而减少了特征之间的相关性。通常,组的大小是一个超参数,可以手动设置或自动确定。
  相对于批量规范化,GroupNorm的一个优势是它对批次大小的依赖性较小。这使得GroupNorm在训练小批量样本或具有不同批次大小的情况下更加稳定。另外,GroupNorm还可以应用于一维、二维和三维的输入,适用于不同类型的神经网络架构。
  GroupNorm的一种变体是分组卷积(Group Convolution),它将输入通道分成多个组,并在每个组内进行卷积操作。这种结构可以减少计算量,并提高模型的效率。

在这里插入图片描述

  • BatchNorm:batch方向做归一化,算N* H*W的均值
  • LayerNorm:channel方向做归一化,算C* H* W的均值
  • InstanceNorm:一个channel内做归一化,算H*W的均值
  • GroupNorm:将channel方向分group,然后每个group内做归一化,算(C//G) * H * W的均值

一、Group normalization

  Group normalization(GroupNorm)是深度学习中用于规范化神经网络激活的一种技术。它是一种替代批量规范化(BatchNorm)和层规范化(LayerNorm)等其他规范化技术的方法。

import torch
import torch.nn as nnclass GroupNorm(nn.Module):def __init__(self, num_groups, num_channels, eps=1e-5):super(GroupNorm, self).__init__()self.num_groups = num_groupsself.num_channels = num_channelsself.eps = epsself.weight = nn.Parameter(torch.ones(1, num_channels, 1, 1))self.bias = nn.Parameter(torch.zeros(1, num_channels, 1, 1))def forward(self, x):batch_size, num_channels, height, width = x.size()# 将特征重塑成 (batch_size * num_groups, num_channels // num_groups, height, width)x = x.view(batch_size, self.num_groups, -1, height, width)# 计算每个组内的均值和方差mean = x.mean(dim=(2, 3, 4), keepdim=True)var = x.var(dim=(2, 3, 4), keepdim=True)# 规范化x = (x - mean) / torch.sqrt(var + self.eps)# 重塑特征x = x.view(batch_size, num_channels, height, width)# 应用缩放和平移x = x * self.weight + self.biasreturn x# 使用示例
group_norm = GroupNorm(num_groups=4, num_channels=64)
inputs = torch.randn(32, 64, 32, 32)
outputs = group_norm(inputs)
print(outputs.shape)

二、批量规范化(Batch Normalization)

  BatchNorm的基本思想是对每个特征通道在一个小批次(即一个批次中的多个样本)的数据上进行规范化,使得其均值接近于0,方差接近于1。这种规范化可以有助于加速神经网络的训练,并提高模型的泛化能力。
  具体而言,对于给定的一个特征通道,BatchNorm的计算过程如下:

  1. 对于一个小批次中的输入数据,计算该特征通道上的均值和方差。
  2. 使用计算得到的均值和方差对该特征通道上的数据进行规范化,使得其均值为0,方差为1。
  3. 对规范化后的数据进行缩放和平移操作,使用可学习的参数进行调整,以恢复模型对数据的表示能力。

  通过在训练过程中对每个小批次的数据进行规范化,BatchNorm有助于解决梯度消失和梯度爆炸等问题,从而加速模型的收敛速度。此外,BatchNorm还具有一定的正则化效果,可以减少模型对输入数据的依赖性,增强模型的鲁棒性。

import torch
import torch.nn as nn# 输入数据形状:(batch_size, num_features)
input_data = torch.randn(32, 64)# 使用BatchNorm进行批量规范化
batch_norm = nn.BatchNorm1d(64)
output = batch_norm(input_data)print(output.shape)

三、层规范化(Layer Normalization)

  与批量规范化相比,层规范化更适用于对序列数据或小批次样本进行规范化,例如自然语言处理任务中的文本序列。它在每个样本的特征维度上进行规范化,使得每个样本在特征维度上具有相似的分布。
层规范化的计算过程如下:
对于每个样本,计算该样本在特征维度上的均值和方差。

  1. 使用计算得到的均值和方差对该样本的特征进行规范化,使得其均值为0,方差为1。
  2. 对规范化后的特征进行缩放和平移操作,使用可学习的参数进行调整,以恢复模型对数据的表示能力。
import torch
import torch.nn as nn# 输入数据形状:(batch_size, num_features)
input_data = torch.randn(32, 64)# 使用LayerNorm进行层规范化
layer_norm = nn.LayerNorm(64)
output = layer_norm(input_data)print(output.shape)
http://www.yayakq.cn/news/570327/

相关文章:

  • 网站建设 服务器浙江seo公司
  • 有没有做网页接单的网站素材网站排行榜前十名
  • 网站搜索功能如何实现济南百度代理
  • 网站前端怎么做网站建设 印花税
  • 湛江海田网站建设招聘软件 开发 公司
  • 宁波网络营销推广开发中心搜索引擎外部优化有哪些渠道
  • 布吉个人网站建设注册一个公司全部流程
  • 哪些网站做的比较好看的图片衡粘水佩网站建设
  • 吉 360 网站建设外网npv加速器
  • 网站数据库到期海口网站制作企业
  • 百度没有收录我的网站吗做音乐网站没有版权
  • 高端html5网站建设的思路腾讯云做网站干什么用
  • 国外做免费的视频网站优秀网站设计效果图
  • 怀柔网站建设推广公司禁用网站怎么做
  • 做网站哪家好免费视频网站制作
  • 网站建设制度公众号平台网站开发
  • 内网域名网站建设 seo结构
  • 如何建立竞价网站广告设计公司售后服务承诺书
  • 济宁专业网站建设营销型网站设计建设
  • 东莞 网站建设 保健品dokuwiki wordpress 整合
  • 室内设计网站排行榜前十名有哪些汽车专业科技网站建设
  • 山东mip网站建设百度竞价推广开户费用
  • 上海平台网站制作公司广州网站建设优化公司哪家好
  • 静态学校网站做毕业设计手机排行榜2022最新
  • 电子商务网站建设与维护李建忠下载松原建设网站
  • 中山网站制作费用dw做网站背景图片设置铺平
  • 东莞百度网站推广cms开源建站系统
  • 珠海网站建设杰作开发公司岗位设置
  • 网站推广怎样做附近编程培训机构
  • 做网站的工作是什么网站设计建设维护与更新