CommencezCommencez gratuitement

Empiler des couches RNN

Les modèles RNN profonds peuvent comporter des dizaines, voire des centaines de couches pour atteindre des résultats à la fine pointe.

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 ce faire, vous réglerez l'argument return_sequences à True pour les deux premières couches LSTM et à False pour la dernière couche LSTM.

Pour créer des modèles avec encore plus de couches, vous pouvez continuer à les ajouter en série ou créer une fonction qui utilise la méthode .add() dans une boucle pour ajouter plusieurs couches avec peu de lignes de code.

Cette activité fait partie du cours

Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras

Voir le cours

Instructions de l’exercice

  • 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 ce code d’exemple.

# 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)))
Modifier et exécuter le code