def get_bilstm_lstm_model(): model = Sequential() # Add Embedding layer model.add(Embedding(input_dim=input_dim, output_dim=output_dim, input_length=input_length)) # Add bidirectional LSTM model.add(Bidirectional(LSTM(units=output_dim, return_sequences=True, dropout=0.2, recurrent_dropout=0.2), merge_mode = 'concat')) # Add LSTM model.add(LSTM(units=output_dim, return_sequences=True, dropout=0.5, recurrent_dropout=0.5)) # Add timeDistributed Layer model.add(TimeDistributed(Dense(n_tags, activation="relu"))) #Optimiser # adam = k.optimizers.Adam(lr=0.0005, beta_1=0.9, beta_2=0.999) # Compile model model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy']) model.summary() return model