Definirea decoderului
În acest exercițiu vei implementa decoderul și vei defini un model end-to-end care pornește de la intrările encoderului și ajunge la rezultatele GRU ale decoderului. Decoderul folosește același tip de model ca encoderul, însă există diferențe în privința intrărilor și stărilor furnizate decoderului față de encoder. De exemplu, decoderul primește ca intrare vectorul de context produs de encoder, precum și starea inițială a decoderului. Reține că vom folosi prefixul en (de ex. en_gru) pentru tot ce ține de encoder și de pentru tot ce ține de decoder (de ex. de_gru).
Pentru a implementa decoderul, vei folosi straturile RepeatVector și GRU.
Pentru acest exercițiu ți-au fost furnizate modelul encoderului și diversele straturi ale acestuia, pe care le-ai implementat deja. De exemplu, intrările encoderului sunt disponibile ca en_inputs, iar vectorul de context ca en_state. Reține, de asemenea, că obiectele GRU și Model au fost deja importate.
Acest exercițiu face parte din cursul
Traducere automată cu Keras
Instrucțiuni pentru exercițiu
- Definește un strat
RepeatVectorcare preiaen_stateca intrare și îl repetă defr_lenori. - Definește un strat GRU,
decoder_gru, cu un număr de unități ascunse egal cuhsize, care returnează toate rezultatele produse. - Obține rezultatul stratului
decoder_grufurnizândde_inputsca intrare șien_stateca stare inițială a decoderului. - Definește un model care preia
en_inputsca intrare șigru_outputsca rezultat.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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()