ÎncepețiÎncepe gratuit

Transfer learning

Ai văzut că, atunci când antrenezi un strat de încorporare (embedding), trebuie să înveți un număr mare de parametri.

În acest exercițiu, vei descoperi că, prin transfer learning, este posibil să folosești ponderi pre-antrenate fără a le actualiza. Astfel, toți parametrii stratului de încorporare rămân fixați, iar modelul va trebui să învețe doar parametrii din celelalte straturi.

Funcția load_glove este deja disponibilă în mediu și returnează matricea GloVe ca vector numpy.ndarray. Aceasta folosește funcția prezentată în slide-urile lecției pentru a obține vectorii GloVe cu 200 de dimensiuni de încorporare, pentru vocabularul utilizat în acest exercițiu.

Acest exercițiu face parte din cursul

Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Vezi cursul

Instrucțiuni pentru exercițiu

  • Folosește funcția predefinită pentru a încărca vectorii GloVe.
  • Aplică initializatorul Constant pe vectorii pre-antrenați.
  • Adaugă stratul de ieșire ca un strat Dense cu o singură unitate.
  • Afișează sumarul și verifică numărul de parametri antrenabili.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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.____
Editează și rulează codul