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
Pokyny k cvičení
- Použij předpřipravenou funkci k načtení GloVe vektorů.
- Použij inicializátor
Constantna předtrénované vektory. - Přidej výstupní vrstvu jako
Denses 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.____