Definirea encoderului
Aici vei face primul pas spre crearea unui model de traducere automată: implementarea encoderului. Encoderul pe care îl vei implementa este un model foarte simplu în comparație cu modelele complexe folosite în aplicații reale, cum ar fi serviciul de traducere Google. Nu te îngrijora însă – deși modelul este simplu, conceptele sunt aceleași ca în cazul modelelor complexe. Vom folosi prefixul en (de exemplu, en_gru) pentru tot ce ține de encoder și de pentru tot ce ține de decoder (de exemplu, de_gru).
Vei observa că alegem en_vocab să fie mai mic (150) decât valoarea reală (228) pe care am găsit-o. Reducerea dimensiunii vocabularului micșorează amprenta de memorie a modelului. O reducere ușoară a vocabularului este acceptabilă, deoarece eliminăm cuvintele cele mai rare. În sarcinile de traducere automată, cuvintele rare au de obicei mai puțină valoare decât cele comune.
Acest exercițiu face parte din cursul
Traducere automată cu Keras
Instrucțiuni pentru exercițiu
- Definește un strat
Inputpentru o intrare cu dimensiunea vocabularuluien_vocabși lungimea secvențeien_len, folosind argumentulshape. - Definește un strat
keras.layers.GRUcuhsizeunități ascunse care să returneze starea sa. - Obține ieșirile din stratul GRU pasând
en_inputsși atribuie starea GRU laen_state, iar ieșirea laen_out. - Definește un
keras.models.Modela cărui intrare esteen_inputsși a cărui ieșire esteen_state, apoi afișează rezumatul modelului.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
import tensorflow.keras as keras
en_len = 15
en_vocab = 150
hsize = 48
# Define an input layer
en_inputs = keras.layers.____(____=____)
# Define a GRU layer which returns the state
en_gru = ____(____, ____=____)
# Get the output and state from the GRU
____, ____ = ____(____)
# Define and print the model summary
encoder = ____(inputs=____, ____=____)
print(encoder.____)