CommencerCommencer gratuitement

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

Afficher le cours

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