Začněte nyníZačněte zdarma

Transfer learning

Viděl/a jsi, že trénování embedding vrstvy vyžaduje naučit velké množství parametrů.

V tomto cvičení zjistíš, že při použití transfer learningu je možné využít předtrénované váhy a neaktualizovat je – parametry embedding vrstvy zůstanou pevně dané a model se bude muset učit pouze parametry ostatních vrstev.

Funkce load_glove je již načtena v prostředí a vrací matici GloVe jako vektor numpy.ndarray. Používá funkci z prezentace lekce k načtení GloVe vektorů s 200 embedding dimenzemi pro slovní zásobu použitou v tomto cvičení.

Toto cvičení je součástí kurzu

Rekurentní neuronové sítě (RNN) pro jazykové modelování s Keras

Zobrazit kurz

Pokyny k cvičení

  • Použij předpřipravenou funkci k načtení GloVe vektorů.
  • Použij inicializátor Constant na předtrénované vektory.
  • Přidej výstupní vrstvu jako Dense s jednou jednotkou.
  • Vypiš shrnutí a zkontroluj počet trénovatelných parametrů.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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.____
Upravit a spustit kód