位置: IT常识 - 正文

常用归一化/正则化层:InstanceNorm1d、InstanceNorm2d、(归一化的几种方法)

编辑:rootadmin
常用归一化/正则化层:InstanceNorm1d、InstanceNorm2d、 归一化零、前言1.官网链接2.归一化公式3.介绍一、InstanceNorm1d1. 介绍2.实例二、InstanceNorm2d1. 介绍2.实例三、BatchNorm1d1.介绍2.实例四、BatchNorm2d1.介绍2.实例零、前言1.官网链接

推荐整理分享常用归一化/正则化层:InstanceNorm1d、InstanceNorm2d、(归一化的几种方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:归一化方法有哪些,详细说明其中两种原理,归一化lms,归一化方法有哪些,详细说明其中两种原理,归一化有什么用,归一化bn,归一化有什么用,归一化方法有哪些,详细说明其中两种原理,常见归一化方法,内容如对您有帮助,希望把文章链接给更多的朋友!

https://pytorch.org/docs/stable/nn.html#normalization-layers

2.归一化公式

函数内部实现其实就是严格完成上面图中的公式,其中E(x)表示均值或者期望,而Var(x)则表示对应的方差。

3.介绍常用归一化/正则化层:InstanceNorm1d、InstanceNorm2d、(归一化的几种方法)

批量归一化与实例归一化的最大区别在于计算均值及方差的依据不同,实例归一化是对每个样本沿着通道方向独立对各个通道进行计算,而批量归一化则是对所有样本沿着batch的方向对各个通道分别进行计算。 比如: 输入特征图形状为:(2,3,256,512),表示有两个256×512的特征图,特征图通道数为3,假设为RGB三个通道 1)实例归一化:

依次对样本1,样本2分别计算R、G、B三个通道的均值、方差,每次计算其实是对256×512个元素值记性计算;依据计算出的均值和方差,对各通道的元素实现图中的公式;

2)批量归一化:

对整个批次的样本,对各个通道分别求出均值和方差,每次计算其实是对2×256×512个元素值记性计算;依据计算出的均值和方差,对各通道的元素实现图中的公式; 一、InstanceNorm1d1. 介绍

一维实例归一化:对一个批次中每个样本,依次按照通道计算对应的均值及均方差。

torch.nn.InstanceNorm1d( num_features,# 与输入特征的通道数保持一致 eps=1e-05, momentum=0.1, affine=False, track_running_stats=False, device=None, dtype=None)Input: (N, C, L)Output: (N, C, L)2.实例import torchimport mathepsilon=1e-5N,C,L=2,3,5inp=torch.randint(5,size=(N,C,L),dtype=torch.float32)print(inp)print("-"*25)# 方法一:手动实现# 对每个样本计算各个通道的均值mean_list=[]for b in range(N): for c in range(C): mean_list.append(torch.sum(inp[b,c,:])/L)# 对每个样本计算各个通道的方差var_list=[]for b in range(N): for c in range(C): # var_list.append(torch.var(inp[b,c,:]*(L-1)/L)) var_list.append(torch.var(inp[b,c,:]))print(mean_list)print(var_list)# 归一化out=torch.zeros_like(inp)# print(len(inp[0,0,:]))# print(out.shape)for b in range(N): for c in range(C): index=b*C+c out[b,c,:]=(inp[b,c,:]-mean_list[index])/math.sqrt(var_list[index]+epsilon)# print(out.shape)print(out)print("-"*25)# 方法二:调用函数out1=torch.nn.InstanceNorm1d(C)(inp)print(out1)二、InstanceNorm2d1. 介绍

二维实例归一化:计算过程及调用方式同一维实例归一化,二者区别主要在于输入特征形状的变化。

torch.nn.InstanceNorm2d(num_features, # 与输入特征的通道数保持一致eps=1e-05, momentum=0.1, affine=False, track_running_stats=False, device=None, dtype=None)Input: (N, C, H, W)Output: (N, C, H, W)2.实例import torchimport math# shape=(N,C,H,W),N表示样本批次大小,H/W表示该特征图高/宽,C表示每个特征元素对应几个通道inp=torch.randn(size=(1,3,2,2))print(inp)print(inp.shape)print('-'*20)out=torch.nn.InstanceNorm2d(3)(inp)print(out)print(out.shape)三、BatchNorm1d1.介绍

一维批量归一化:其实还是实现前言中介绍的公式,但与实例归一化的最大区别在于计算均值及方差的依据不同。

torch.nn.BatchNorm1d(num_features, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True, device=None,dtype=None)Input: (N,C,L), where N is the batch size, C is the number of features or channels, and L is the sequence lengthOutput: (N,C,L) (same shape as input)2.实例import torchimport mathepsilon=1e-5N,C,L=128,3,512inp=torch.randn(size=(N,C,L))# 方法一:手动实现# 沿着batch计算各个通道的均值mean_1, mean_2, mean_3 = torch.sum(inp[:,0,:])/(N*L), torch.sum(inp[:,1,:])/(N*L), torch.sum(inp[:,2,:])/(N*L)mean_list=[mean_1, mean_2, mean_3 ]# 沿着batch计算各个通道的方差var_1, var_2, var_3 = torch.var(inp[:,0,:]), torch.var(inp[:,1,:]), torch.var(inp[:,2,:])var_list=[var_1, var_2, var_3 ]print(mean_list,var_list)# 归一化out=torch.zeros_like(inp)for c in range(C): out[:,c,:]=(inp[:,c,:]-mean_list[c])/math.sqrt(var_list[c]+epsilon)# print(out.shape)# print(out)out1=outprint("-"*25)# 方法二:调用函数out=torch.nn.BatchNorm1d(C)(inp)# print(out)# print(out.shape)print(True in (out1==out))四、BatchNorm2d1.介绍

二维批量归一化:计算过程及调用方式同一维批量归一化,二者区别主要在于输入特征形状的变化。

torch.nn.BatchNorm2d(num_features, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True, device=None, dtype=None)Input: (N, C, H, W)Output: (N, C, H, W)(same shape as input)2.实例import torch# shape=(N,C,H,W),N表示样本批次大小,H/W表示该特征图高/宽,C表示每个特征元素对应几个通道inp=torch.randn(size=(2,3,5,6))print(inp)print(inp.shape)print('-'*20)out=torch.nn.BatchNorm2d(3)(inp)print(out)print(out.shape)
本文链接地址:https://www.jiuchutong.com/zhishi/295908.html 转载请保留说明!

上一篇:华为OD机试 - 租车骑绿岛(Java & JS & Python)(华为od机试题题库)

下一篇:页面访问升级出错怎么解决(页面访问升级出错怎么办)

  • 捐赠税前扣除比例表
  • 跨区域涉税事项报验
  • 其他业务收入在借方表示什么
  • 建筑业属于货物行业吗
  • 管家婆软件记账流程
  • 一个营业执照可以开几家淘宝店
  • 个体户购买社保和自由人购买社保区别
  • 金蝶怎么填写凭证
  • 外购自用需要缴纳增值税吗
  • 自产产品赠送确认收入吗
  • 企业收取多年租金怎么算
  • 小型微利企业免于填报
  • 电子钥匙续费能退款吗
  • 固定资产出售怎么做账
  • 土地契税税率怎么计算
  • 多提税金的具体分录
  • 社保支付账号是什么
  • 职工教育扣除标准是什么
  • 如何填写企业所得税
  • 个人独资企业生产经营费用与家庭生活费用
  • 未知文件格式怎么打开
  • 如何调整任务栏图标大小
  • qdcsfs.exe - qdcsfs是什么进程 有何作用
  • PHP:oci_set_prefetch()的用法_Oracle函数
  • php curl header参数
  • 远程桌面连接失败了
  • 社保征集单是什么样子的
  • php的循环
  • php \t
  • 营业外收支的内容
  • PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别分析
  • 国家公园好玩吗
  • 高新技术企业取消资格的程序
  • thinkphp教程
  • 结转制造费用用什么科目
  • html表格用法
  • opencv 方框识别
  • 修改命令的快捷键
  • python兑换美元
  • 收到股东投资款现金流量表入哪一项
  • 经销商自用车是指什么
  • 材料采购与原材料账户核算内容有何差别
  • 政府补助会计处理方法
  • 现金日记账应采用的格式为订本式
  • 完税证明可以直接做账吗
  • 员工借款的定义
  • 受托方开具加工费发票
  • 成本结账是什么意思
  • 行政单位与事业单位净资产的比较
  • 社保局退回生育津贴分录摘要
  • 经营租赁的房屋计提折旧吗
  • 抵押贷款评估费自己出吗
  • 发生坏账时的分录
  • 出租房屋损坏赔偿
  • 结转成本附什么附件
  • 年报从业人数和什么有关
  • 购入的无形资产加计扣除怎么算
  • 农业企业纳税申报
  • ado connection open.vi
  • 苹果的mac系统
  • linux网络协议栈内核分析
  • 联想lenovoideapad700-15isk
  • 如何删除已下载的windows更新
  • arm和x86性能差多少
  • Linux配置防火墙端口
  • macosmajove
  • linux下时间同步的两种方法分享
  • kernel headers not found for target kernel
  • js调用wsdl接口
  • jquery从入门到精通
  • shell怎么创建用户
  • python os模块
  • shell脚本逐条执行
  • 安卓手机电驴
  • 2016年小微企业所得税标准
  • 广州市税务局副局长陈忠文
  • 拆迁补偿的房子是什么性质
  • 一般纳税人开具的增值税普通发票和专用发票的区别
  • 契税有发票吗,还是纳税证明
  • 政务公开有何意义
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设