在哪里实施层归一化?

时间:2019-06-19 12:38:47

标签: keras neural-network deep-learning normalization recurrent-neural-network

我正在尝试在我的LSTM模型上实现Layer规范化,但是我不确定我的模型中需要多少Layer规范以及将其准确放置在何处

def build_model():
    model = Sequential()
    layers = [100, 200, 2]
    model.add(Bidirectional(LSTM(
        layers[0],
        input_shape=(timestep, feature),
        dropout=0.4, 
        recurrent_dropout=0.4,  
        return_sequences=True)))
    model.add(LayerNormalization())
    model.add(Bidirectional(LSTM(
        layers[1], 
        input_shape=(timestep, feature),
        dropout=0.4, 
        recurrent_dropout=0.4, 
        return_sequences=False)))
    model.add(LayerNormalization())
    model.add(Dense(
        layers[2]))

1 个答案:

答案 0 :(得分:0)

归一化层通常将其归一化效果应用于上一层,因此应将其放在要归一化的层的前面。

通常,除输出层外,所有层都已标准化,因此您在问题中显示的配置已经执行了此操作,因此可以认为这是一种好习惯。

通常,您不必对每一层进行归一化,并且需要对哪些层进行归一化进行一些试验(尝试和错误)。