Zacznij terazZacznij za darmo

Definiowanie dekodera

W tym ćwiczeniu zaimplementujesz dekoder i zdefiniujesz model end-to-end – od wejść enkodera do wyjść GRU dekodera. Dekoder korzysta z tego samego modelu co enkoder, ale różni się od niego pod względem wejść i stanów. Na przykład dekoder przyjmuje jako wejście wektor kontekstu wyprodukowany przez enkoder, a także jego stan początkowy. Pamiętaj, że używamy przedrostka en (np. en_gru) dla elementów związanych z enkoderem oraz de dla elementów związanych z dekoderem (np. de_gru).

Do implementacji dekodera użyjesz warstw RepeatVector i GRU.

W tym ćwiczeniu masz już dostęp do modelu enkodera oraz jego poszczególnych warstw, które zostały wcześniej zaimplementowane. Na przykład wejścia enkodera są dostępne jako en_inputs, a wektor kontekstu jako en_state. Obiekty GRU i Model zostały już zaimportowane.

To ćwiczenie jest częścią kursu

Tłumaczenie maszynowe z Keras

Zobacz kurs

Instrukcje do ćwiczenia

  • Zdefiniuj warstwę RepeatVector, która przyjmuje en_state jako wejście i powtarza go fr_len razy.
  • Zdefiniuj warstwę GRU o nazwie decoder_gru, która ma liczbę jednostek ukrytych równą hsize i zwraca wszystkie produkowane wyjścia.
  • Pobierz wyjście warstwy decoder_gru, podając de_inputs jako wejście oraz en_state jako stan początkowy dekodera.
  • Zdefiniuj model, który przyjmuje en_inputs jako wejście i gru_outputs jako wyjście.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

from tensorflow.keras.layers import RepeatVector

hsize = 48
fr_len = 20
# Define a RepeatVector layer
de_inputs = ____(____)(____)
# Define a GRU model that returns all outputs
decoder_gru = ____(____, ____=____)
# Get the outputs of the decoder
gru_outputs = ____(____, initial_state=____)
# Define a model with the correct inputs and outputs
enc_dec = ____(inputs=____, outputs=____)
enc_dec.summary()
Edytuj i uruchom kod