Aan de slagGa gratis aan de slag

RNN-lagen stapelen

Diepe RNN-modellen kunnen tientallen tot honderden lagen hebben om state-of-the-art resultaten te behalen.

In deze oefening krijg je een idee van hoe je diepe RNN-modellen maakt door lagen met LSTM-cellen achter elkaar te stapelen.

Hiervoor zet je het argument return_sequences op True voor de eerste twee LSTM-lagen en op False voor de laatste LSTM-laag.

Om modellen met nog meer lagen te maken, kun je ze blijven toevoegen, of een functie schrijven die binnen een lus de methode .add() gebruikt om met weinig regels code veel lagen toe te voegen.

Deze oefening maakt deel uit van de cursus

Recurrent Neural Networks (RNN's) voor taalmodellen met Keras

Cursus bekijken

Oefeninstructies

  • Importeer de LSTM-laag.
  • Geef de sequenties terug in de eerste twee lagen en geef de sequenties niet terug in de laatste LSTM-laag.
  • Laad de voorgetrainde gewichten.
  • Print de behaalde loss en accuracy.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Import the LSTM layer
from tensorflow.keras.layers import ____

# Build model
model = Sequential()
model.add(LSTM(units=128, input_shape=(None, 1), return_sequences=____))
model.add(LSTM(units=128, return_sequences=____))
model.add(LSTM(units=128, return_sequences=____))
model.add(Dense(1, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# Load pre-trained weights
model.____('lstm_stack_model_weights.h5')

____("Loss: %0.04f\nAccuracy: %0.04f" % tuple(model.evaluate(X_test, y_test, verbose=0)))
Code bewerken en uitvoeren