在Keras中,是否可以对LSTM网络的输入层应用dropout?
如果我的模型是这样的:
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函数式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)