Pytorch学习笔记-06 Normalization layers

简介: Pytorch学习笔记-06 Normalization layers

Why Normalization


Internal Covariate Shift (ICS):数据尺度 分布异常,导致训练困难


Batch Normalization


Batch Normalization :批标准化

批:一批数据,通常为 mini batch


《Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift 》

优点:


可以 用 更大学习率,加速模型收敛

可以 不用 精心设计权值初始化

可以 不用 dropout 或较小的 dropout

可以 不用 L2 或者较小的 weight decay

可以 不用 LRN(local response normalization)

_

BatchNorm

nn.BatchNorm1d

nn.BatchNorm2d

nn.BatchNorm3d

参数:


num_features :一个样本特征数量(最重要

e p s :分母修正项

momentum :指数加权平均估计当前 mean/ var

affine :是否需要 affine transform

track_running_stats :是训练状态,还是测试状态


Layer Normalization


起因:

BN 不适用于变长的网络,如 RNN

思路:

逐层 计算均值和方差


注意事项:

不再有 running_mean 和 running_var


gamma 和 beta 为逐元素的


主要参数:


normalized_shape :该层特征形状


eps :分母修正项


elementwise_affine :是否需要 affine


transform


Instance Normalization


起因:

BN 在图像生成( Image Generation )中不适用

思路:

逐 Instance channel 计算均值和方差


主要参数:


num_features :一个样本特征数量(最重要

eps :分母修正项

momentum :指数加权平均估计当前 mean/ var

affine :是否需要 affine transform

track_running_stats :是训练状态,还是测试状态


Group Normalization


起因:小batch 样本中, BN 估计的值不准

思路:数据不够,通道来凑


注意事项:


不再有 running_mean 和 running_var


gamma 和 beta 为逐通道( channel )的

应用场景:大模型(小batch size )任务


小结


BN 、 LN 、 IN 和 GN 都是为了克服 Internal Covariate Shift (ICS)


目录
相关文章
|
8月前
|
数据采集 PyTorch 数据处理
Pytorch学习笔记(3):图像的预处理(transforms)
Pytorch学习笔记(3):图像的预处理(transforms)
424 1
Pytorch学习笔记(3):图像的预处理(transforms)
|
8月前
|
机器学习/深度学习 PyTorch 算法框架/工具
Pytorch学习笔记(1):基本概念、安装、张量操作、逻辑回归
Pytorch学习笔记(1):基本概念、安装、张量操作、逻辑回归
148 0
Pytorch学习笔记(1):基本概念、安装、张量操作、逻辑回归
|
8月前
|
PyTorch 算法框架/工具 索引
Pytorch学习笔记(2):数据读取机制(DataLoader与Dataset)
Pytorch学习笔记(2):数据读取机制(DataLoader与Dataset)
400 0
Pytorch学习笔记(2):数据读取机制(DataLoader与Dataset)
|
8月前
|
机器学习/深度学习 缓存 监控
Pytorch学习笔记(7):优化器、学习率及调整策略、动量
Pytorch学习笔记(7):优化器、学习率及调整策略、动量
355 0
Pytorch学习笔记(7):优化器、学习率及调整策略、动量
|
3月前
|
机器学习/深度学习 算法 PyTorch
Pytorch学习笔记(1)
PyTorch是一个基于Python的开源机器学习库,广泛应用于深度学习和人工智能领域。它提供了丰富的工具和函数,方便我们构建、训练和部署神经网络模型。 本文将围绕以下几个关键主题展开: 张量(Tensors):PyTorch中的数据基本单位。 自动求导(Automatic Differentiation):PyTorch中的自动求导机制。 神经网络的构建和训练:使用PyTorch构建和训练神经网络的基本步骤。
|
8月前
|
数据采集 机器学习/深度学习 PyTorch
Pytorch学习笔记(5):torch.nn---网络层介绍(卷积层、池化层、线性层、激活函数层)
Pytorch学习笔记(5):torch.nn---网络层介绍(卷积层、池化层、线性层、激活函数层)
164 0
Pytorch学习笔记(5):torch.nn---网络层介绍(卷积层、池化层、线性层、激活函数层)
|
8月前
|
存储 PyTorch 算法框架/工具
Pytorch学习笔记(4):模型创建(Module)、模型容器(Containers)、AlexNet构建
Pytorch学习笔记(4):模型创建(Module)、模型容器(Containers)、AlexNet构建
76 0
Pytorch学习笔记(4):模型创建(Module)、模型容器(Containers)、AlexNet构建
|
8月前
|
存储 机器学习/深度学习 PyTorch
Pytorch学习笔记(9)模型的保存与加载、模型微调、GPU使用
Pytorch学习笔记(9)模型的保存与加载、模型微调、GPU使用
440 0
Pytorch学习笔记(9)模型的保存与加载、模型微调、GPU使用
|
8月前
|
机器学习/深度学习 算法 PyTorch
Pytorch学习笔记(8):正则化(L1、L2、Dropout)与归一化(BN、LN、IN、GN)
Pytorch学习笔记(8):正则化(L1、L2、Dropout)与归一化(BN、LN、IN、GN)
498 0
Pytorch学习笔记(8):正则化(L1、L2、Dropout)与归一化(BN、LN、IN、GN)
|
8月前
|
机器学习/深度学习 PyTorch 算法框架/工具
Pytorch学习笔记(6):模型的权值初始化与损失函数
Pytorch学习笔记(6):模型的权值初始化与损失函数
106 0
Pytorch学习笔记(6):模型的权值初始化与损失函数