Transfer learning
Uczenie warstwy osadzeń (embedding layer) wiąże się z koniecznością nauczenia bardzo wielu parametrów.
W tym ćwiczeniu zobaczysz, że dzięki transfer learningowi można wykorzystać wagi wstępnie wytrenowanego modelu i nie aktualizować ich podczas treningu. Oznacza to, że wszystkie parametry warstwy osadzeń pozostają zamrożone, a model uczy się jedynie parametrów pozostałych warstw.
Funkcja load_glove jest już dostępna w środowisku i zwraca macierz GloVe jako wektor numpy.ndarray. Korzysta z metody omówionej na slajdach lekcji, aby pobrać wektory GloVe o 200 wymiarach osadzeń dla słownictwa użytego w tym ćwiczeniu.
To ćwiczenie jest częścią kursu
Rekurencyjne sieci neuronowe (RNN) do modelowania języka w Keras
Instrukcje do ćwiczenia
- Użyj predefiniowanej funkcji, aby wczytać wektory GloVe.
- Zastosuj inicjalizator
Constantna wstępnie wytrenowanych wektorach. - Dodaj warstwę wyjściową jako
Densez jedną jednostką. - Wyświetl podsumowanie i sprawdź liczbę trenowalnych parametrów.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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.____