Začněte nyníZačněte zdarma

Definování dekodéru

V tomto cvičení implementuješ dekodér a sestavíš model end-to-end, který bude propojovat vstupy enkodéru s výstupy dekodérové vrstvy GRU. Dekodér používá stejný model jako enkodér, liší se ale vstupy a stavy, které do něj vstupují. Dekodér například přijímá kontextový vektor vytvořený enkodérem jako vstup a zároveň jako počáteční stav. Nezapomeň, že prefixem en (např. en_gru) označujeme vše, co se týká enkodéru, a prefixem de vše, co se týká dekodéru (např. de_gru).

K implementaci dekodéru využiješ vrstvy RepeatVector a GRU.

Pro toto cvičení máš k dispozici model enkodéru a jeho jednotlivé vrstvy, které jsi už implementoval/a dříve. Vstupy enkodéru jsou dostupné jako en_inputs a kontextový vektor jako en_state. Objekty GRU a Model jsou již naimportovány.

Toto cvičení je součástí kurzu

Machine Translation with Keras

Zobrazit kurz

Pokyny k cvičení

  • Definuj vrstvu RepeatVector, která přijme en_state jako vstup a zopakuje ho fr_len-krát.
  • Definuj vrstvu GRU s názvem decoder_gru, která má tolik skrytých jednotek, kolik odpovídá hodnotě hsize, a vrací všechny výstupy.
  • Získej výstup vrstvy decoder_gru tak, že jí předáš de_inputs jako vstup a en_state jako počáteční stav dekodéru.
  • Definuj model, který přijímá en_inputs jako vstup a gru_outputs jako výstup.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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()
Upravit a spustit kód