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
Pokyny k cvičení
- Definuj vrstvu
RepeatVector, která přijmeen_statejako vstup a zopakuje hofr_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_grutak, že jí předášde_inputsjako vstup aen_statejako počáteční stav dekodéru. - Definuj model, který přijímá
en_inputsjako vstup agru_outputsjako 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()