При нормализации слоя мы вычисляем среднее значение и дисперсию по входному слою (а не по партии, что мы и делаем при нормализации партии).А затем нормализуйте входной слой в соответствии со средним и дисперсией, а затем верните нормализованный слой гамма-времен плюс бета.
Мой вопрос, являются ли гамма- и бета-скаляры с формами (1, 1) и (1, 1) соответственно или их формы (1, количество скрытых единиц) и (1, количество скрытых единиц) соответственно.
Вот как я реализовал нормализацию слоя, верно ли это!
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 = np.random.normal(1, 128)
beta = np.random.normal(1, 128)