mlx.nn.InstanceNorm

目录

mlx.nn.InstanceNorm#

class InstanceNorm(dims: int, eps: float = 1e-05, affine: bool = False)#

对输入应用实例归一化 [1]。

计算公式:

\[y = \frac{x - \mathrm{E}[x]}{ \sqrt{\mathrm{Var}[x] + \epsilon}} * \gamma + \beta,\]

其中 \(\gamma\)\(\beta\) 是按特征维度学习的参数,初始值分别为 1 和 0。如果 affineTrue,则两者的尺寸都为 dims

参数:
  • dims (int) – 输入的特征数量。

  • eps (float) – 添加到分母上的值,用于数值稳定性。默认值:1e-5

  • affine (bool) – 默认值:False

形状
  • 输入:\((..., C)\),其中 \(C\) 等于 dims

  • 输出:与输入形状相同。

示例

>>> import mlx.core as mx
>>> import mlx.nn as nn
>>> x = mx.random.normal((8, 4, 4, 16))
>>> inorm = nn.InstanceNorm(dims=16)
>>> output = inorm(x)

参考

[1]:https://arxiv.org/abs/1607.08022

方法