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
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)))