gus*_*avz 5 lstm keras recurrent-neural-network batch-normalization dropout
我正在使用 LSTM 网络进行多元多时间步预测。因此,基本上seq2seq预测是将多个数据n_inputs输入模型以预测n_outputs时间序列的多个数据。
我的问题是如何有意义地应用Dropout,BatchnNormalization因为这似乎是循环网络和 LSTM 网络广泛讨论的主题。为了简单起见,我们坚持使用 Keras 作为框架。
案例 1:普通 LSTM
model = Sequential()
model.add(LSTM(n_blocks, activation=activation, input_shape=(n_inputs, n_features), dropout=dropout_rate))
model.add(Dense(int(n_blocks/2)))
model.add(BatchNormalization())
model.add(Activation(activation))
model.add(Dense(n_outputs))
Run Code Online (Sandbox Code Playgroud)
案例 2:带有 TimeDistributed Layers 的编码器解码器(如 LSTM)
model = Sequential()
model.add(LSTM(n_blocks, activation=activation, input_shape=(n_inputs,n_features), dropout=dropout_rate))
model.add(RepeatVector(n_outputs))
model.add(LSTM(n_blocks, activation=activation, return_sequences=True, dropout=dropout_rate))
model.add(TimeDistributed(Dense(int(n_blocks/2)), use_bias=False))
model.add(TimeDistributed(BatchNormalization()))
model.add(TimeDistributed(Activation(activation)))
model.add(TimeDistributed(Dropout(dropout_rate)))
model.add(TimeDistributed(Dense(1)))
Run Code Online (Sandbox Code Playgroud)
BatchNormalozation和Dropout包裹在层内,还是不包裹它们是否正确?TimeDistributedTimeDistributed(Dense())Q7:如果将一个ConvLSTM2D层用作第一层(编码器),这会对 Dropout 和 BatchNormalization 的使用产生影响吗?
Q8:该recurrent_dropout参数应该在 LSTM 块内使用吗?如果是,应该将其dropout与示例中的普通参数结合起来,还是应该交换?预先非常感谢您!
| 归档时间: |
|
| 查看次数: |
4406 次 |
| 最近记录: |