将 dropout 应用于 LSTM 网络(Keras)中的输入层

Applying dropout to input layer in LSTM network (Keras)

是否可以在 Keras 中将 dropout 应用于 LSTM 网络的输入层?

如果这是我的模型:

model = Sequential()
model.add(LSTM(10, input_shape=(look_back, input_length), return_sequences=False))
model.add(Dense(1))

目标是达到的效果:

model = Sequential()
model.add(Dropout(0.5))
model.add(LSTM(10, input_shape=(look_back, input_length), return_sequences=False))
model.add(Dense(1))

您可以使用 Keras Functional API,其中您的模型将写为:

inputs = Input(shape=(input_shape), dtype='int32')
x = Dropout(0.5)(inputs)
x = LSTM(10,return_sequences=False)(x)

定义你的输出层,例如:

predictions = Dense(10, activation='softmax')(x)

然后构建模型:

model = Model(inputs=inputs, outputs=predictions)