Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Gebruik de voorgedefinieerde functie om de GloVe-vectoren te laden.
  • Gebruik de initializer Constant op de voorgetrainde vectoren.
  • Voeg de outputlaag toe als een Dense met éé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.____
Code bewerken en uitvoeren