首页 > 解决方案 > 将 dropout 应用于 LSTM 网络(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))

标签: machine-learningneural-networkkerasdropout

解决方案


您可以使用Keras 功能 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)

推荐阅读