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
Instructions
- Utilisez la fonction prédéfinie pour charger les vecteurs GloVe.
- Utilisez l’initialiseur
Constantsur les vecteurs pré-entraînés. - Ajoutez la couche de sortie en tant que
Denseavec 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.____