首页 > 解决方案 > 层归一化层中 beta 和 gamma 参数的形状是什么?

问题描述

在层归一化中,我们计算整个输入层的均值和方差(而不是我们在批量归一化中所做的跨批次)。然后根据均值和方差对输入层进行归一化,然后返回 gamma 乘以归一化层加上 beta。

我的问题是,gamma 和 beta 标量的形状分别是 (1, 1) 和 (1, 1) 还是它们的形状分别是 (1, number of hidden units) 和 (1, number of hidden units)。

这是我如何实现层规范化,这是正确的!

def layernorm(layer, gamma, beta):
    mean = np.mean(layer, axis = 1, keepdims = True)
    variance = np.mean((layer - mean) ** 2, axis=1, keepdims = True)
    layer_hat = (layer - mean) * 1.0 / np.sqrt(variance + 1e-8)
    outpus = gamma * layer_hat + beta
    return outpus

其中 gamma 和 beta 定义如下:

gamma = np.random.normal(1, 128)
beta = np.random.normal(1, 128)

标签: machine-learningneural-networkdeep-learning

解决方案


根据Tensorflow 的实现,假设输入为 shape [B, rest], gamma 和 beta 为 shape restrest对于 2 维输入,可以是 (h, ),对于 4 维输入,可以是 (h, w, c)。


推荐阅读