图层归一化层中beta和gamma参数的形状是什么?

时间:2019-06-21 06:25:18

标签: machine-learning neural-network deep-learning

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

我的问题是,分别是形状为(1,1)和(1,1)的gamma和beta标量,还是它们的形状分别是(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和beta的定义如下:

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

1 个答案:

答案 0 :(得分:0)

根据Tensorflow's implementation,假定输入的形状为inputField = driver.findElement(webdriver.By.id('gbqfq')); driver.executeScript("arguments[0].setAttribute('value', '" + longstring +"')", inputField); ,gamma和beta的形状为[B, rest]rest对于2维输入可以是(h,),对于4维输入可以是(h,w,c)。