Empiler des couches RNN
Les modèles RNN profonds peuvent comporter des dizaines, voire des centaines de couches pour atteindre l’état de l’art.
Dans cet exercice, vous allez voir comment créer des RNN profonds en empilant des couches de cellules LSTM les unes après les autres.
Pour cela, vous allez définir l’argument return_sequences à True sur les deux premières couches LSTM et à False sur la dernière couche LSTM.
Pour créer des modèles avec encore plus de couches, vous pouvez continuer à les ajouter les unes après les autres, ou écrire une fonction qui utilise la méthode .add() dans une boucle pour ajouter de nombreuses couches avec peu de lignes de code.
Cet exercice fait partie du cours
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras
Instructions
- Importez la couche
LSTM. - Retournez les séquences dans les deux premières couches et ne retournez pas les séquences dans la dernière couche
LSTM. - Chargez les poids pré-entraînés.
- Affichez la perte et la précision obtenues.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)))