Kom igångKom igång gratis

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

Visa kurs

Övningsinstruktioner

  • Definiera ett RepeatVector-lager som tar en_state som indata och upprepar det fr_len gånger.
  • Definiera ett GRU-lager, decoder_gru, med lika många dolda enheter som hsize och som returnerar alla producerade utdata.
  • Hämta utdata från decoder_gru-lagret genom att mata in de_inputs som indata och en_state som avkodarens initialstatus.
  • Definiera en modell som tar en_inputs som indata och gru_outputs som 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()
Redigera och kör kod