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
Instrukcje do ćwiczenia
- Zdefiniuj warstwę
RepeatVector, która przyjmujeen_statejako wejście i powtarza gofr_lenrazy. - Zdefiniuj warstwę GRU o nazwie
decoder_gru, która ma liczbę jednostek ukrytych równąhsizei zwraca wszystkie produkowane wyjścia. - Pobierz wyjście warstwy
decoder_gru, podającde_inputsjako wejście orazen_statejako stan początkowy dekodera. - Zdefiniuj model, który przyjmuje
en_inputsjako wejście igru_outputsjako 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()