Search code examples
kerasneural-networklstmrecurrent-neural-network

Dropout Training Parameter


I want the use dropout in a LSTM layer for both training and testing. As per this article:

https://towardsdatascience.com/learning-note-dropout-in-recurrent-networks-part-2-f209222481f8

model = Sequential()
model.add(LSTM(X_len, return_sequences = True, input_shape=(X_len, 1)))
model.add(Dropout(rate=0.2, training=True))
model.add(LSTM(X_len))
model.add(Dropout(rate=0.2, training=True))
model.add(Dense(Y_len))

Error I get is:

TypeError: ('Keyword argument not understood:', 'training')

Any idea how to fix this please?


Solution

  • use the functional format

    inp = Input(shape=(X_len, 1))
    x = LSTM(X_len, return_sequences = True)(inp)
    x = Dropout(rate=0.2)(x, training=True)
    x = LSTM(X_len)(x)
    x = Dropout(rate=0.2)(x, training=True)
    out = Dense(Y_len)(x)
    
    model = Model(inp, out)
    model.compile('adam', 'mse')
    model.summary()