CommencezCommencez gratuitement

Apprentissage par transfert

Vous avez vu qu'en entraînant une couche d'intégration, vous devez apprendre un très grand nombre de paramètres.

Dans cet exercice, vous verrez qu'avec l'apprentissage par transfert, il est possible d'utiliser des poids préentraînés et de ne pas les mettre à jour. Autrement dit, tous les paramètres de la couche d'intégration seront figés, et le modèle n'aura à apprendre que les paramètres des autres couches.

La fonction load_glove est déjà chargée dans l'environnement et récupère la matrice GloVe sous forme de vecteur numpy.ndarray. Elle utilise la fonction présentée dans les diapositives de la leçon pour obtenir les vecteurs GloVe avec 200 dimensions d'intégration pour le vocabulaire utilisé dans cet exercice.

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

  • Utilisez la fonction prédéfinie pour charger les vecteurs GloVe.
  • Utilisez l'initialiseur Constant sur les vecteurs préentraînés.
  • Ajoutez la couche de sortie comme une Dense avec une unité.
  • Affichez le résumé (summary) et vérifiez les paramètres entraînables.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Load the glove pre-trained vectors
glove_matrix = ____('glove_200d.zip')

# Create a model with embeddings
model = Sequential(name="emb_model")
model.add(Embedding(input_dim=vocabulary_size + 1, output_dim=wordvec_dim, 
                    embeddings_initializer=____(glove_matrix), 
                    input_length=sentence_len, trainable=False))
model.add(GRU(128))
model.add(____)
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# Print the summaries of the model with embeddings
model.____
Modifier et exécuter le code