Definiera avkodaren
I den här övningen implementerar du avkodaren och definierar en komplett modell som går från kodarens indata till avkodarens GRU-utdata. Avkodaren använder samma modellstruktur som kodaren, men det finns skillnader i de indata och tillstånd som matas in. Till exempel tar avkodaren emot den kontextvektor som kodaren producerar, både som indata och som initialstatus. Kom ihåg att vi använder prefixet en (t.ex. en_gru) för att markera allt som hör till kodaren och de för det som hör till avkodaren (t.ex. de_gru).
För att implementera avkodaren använder du lagren RepeatVector och GRU.
I den här övningen är kodarmodellen och dess olika lager redan implementerade åt dig. Kodarens indata finns tillgängliga som en_inputs och kontextvektorn som en_state. Observera också att objekten GRU och Model redan är importerade.
Den här övningen är en del av kursen
Maskinöversättning med Keras
Övningsinstruktioner
- Definiera ett
RepeatVector-lager som taren_statesom indata och upprepar detfr_lengånger. - Definiera ett GRU-lager,
decoder_gru, med lika många dolda enheter somhsizeoch som returnerar alla producerade utdata. - Hämta utdata från
decoder_gru-lagret genom att mata inde_inputssom indata ochen_statesom avkodarens initialstatus. - Definiera en modell som tar
en_inputssom indata ochgru_outputssom utdata.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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()