Zacznij terazZacznij za darmo

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

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj predefiniowanej funkcji, aby wczytać wektory GloVe.
  • Zastosuj inicjalizator Constant na wstępnie wytrenowanych wektorach.
  • Dodaj warstwę wyjściową jako Dense z 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.____
Edytuj i uruchom kod