PyTorch Instance Normalization介绍

Instance Normalization(实例归一化) 是一种标准化技术,与 Batch Normalization 类似,但它对每个样本独立地对每个通道进行归一化,而不依赖于小批量数据的统计信息。这使得它非常适合小批量训练任务以及图像生成任务(如风格迁移)。


Instance Normalization 的原理

对每个样本 xx 的每个通道 cc 独立进行标准化。
对于输入数据 (以二维输入为例):

1. 计算每个通道的均值和方差

    • n:样本索引。
    • c:通道索引。
    • H,W:输入的高度和宽度。

2. 归一化

    • ϵ 是一个小值,用于防止除零。

3. 缩放和平移

  • γc​ 和 βc 是可学习参数,用于恢复表达能力。

Instance Normalization 的特点

  1. 独立于批量大小:每个样本独立进行归一化,解决了小批量训练中均值和方差不稳定的问题。
  2. 适用于风格迁移任务:在风格迁移中,Instance Normalization 能更好地捕捉图像的风格特征。
  3. 不适合特征间强相关任务:Instance Normalization破坏了样本之间的特征相关性,因此不适用于依赖特征间关系的任务(如分类)。

PyTorch 中的 InstanceNorm 类

PyTorch 提供了以下三种适用于不同输入维度的 Instance Normalization 类:

  • torch.nn.InstanceNorm1d:适用于一维数据(如序列或嵌入向量)。
  • torch.nn.InstanceNorm2d:适用于二维数据(如图像)。
  • torch.nn.InstanceNorm3d:适用于三维数据(如视频或体数据)。

1. torch.nn.InstanceNorm1d
参数:
  • num_features:输入的通道数。
  • eps
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值