Transfer learning
Je zag dat je bij het trainen van een embeddinglaag veel parameters moet leren.
In deze oefening ga je zien dat je met transfer learning de voorgetrainde gewichten kunt gebruiken en ze niet hoeft bij te werken. Dat betekent dat alle parameters van de embeddinglaag vaststaan, en dat het model alleen de parameters van de andere lagen hoeft te leren.
De functie load_glove is al in de omgeving geladen en haalt de GloVe-matrix op als een numpy.ndarray-vector. Deze gebruikt de functie uit de dia's van de les om de GloVe-vectoren met 200 embedding-dimensies op te halen voor de vocabulaire die in deze oefening voorkomt.
Deze oefening maakt deel uit van de cursus
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras
Oefeninstructies
- Gebruik de voorgedefinieerde functie om de GloVe-vectoren te laden.
- Gebruik de initializer
Constantop de voorgetrainde vectoren. - Voeg de outputlaag toe als een
Densemet één unit. - Print de summary en controleer de trainable parameters.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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.____