CommencerCommencer gratuitement

Transfer learning

Vous avez vu qu’en entraînant une couche d’embedding, vous devez apprendre un grand nombre de paramètres.

Dans cet exercice, vous allez voir qu’avec le transfer learning, il est possible d’utiliser des poids pré-entraînés et de ne pas les mettre à jour : tous les paramètres de la couche d’embedding restent donc fixes, et le modèle n’a besoin d’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 diapos de la leçon pour obtenir les vecteurs GloVe avec 200 dimensions d’embedding pour le vocabulaire présent dans cet exercice.

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

  • 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 en tant que Dense avec une unité.
  • Affichez le résumé et vérifiez les paramètres entraînables.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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