Definire l'encoder
Qui farai il primo passo verso la creazione di un modello di traduzione automatica: implementare l'encoder. L'encoder che implementerai è un modello molto semplice rispetto ai modelli complessi usati in applicazioni reali come il servizio di traduzione di Google. Ma non preoccuparti: anche se il modello è semplice, i concetti sono gli stessi di quelli più complessi. Qui useremo il prefisso en (ad es. en_gru) per indicare tutto ciò che riguarda l'encoder e de per indicare ciò che riguarda il decoder (ad es. de_gru).
Vedrai che scegliamo en_vocab più piccolo (150) rispetto al valore reale (228) che abbiamo trovato. Ridurre il vocabolario diminuisce l'uso di memoria del modello. Ridurre leggermente il vocabolario va bene perché così rimuoviamo le parole più rare. Nei compiti di traduzione automatica, le parole rare di solito hanno meno valore rispetto a quelle comuni.
Questo esercizio fa parte del corso
Traduzione automatica con Keras
Istruzioni dell'esercizio
- Definisci un livello
Inputper un input con ampiezza del vocabolarioen_vocabe lunghezza di sequenzaen_len, usando l'argomentoshape. - Definisci un livello
keras.layers.GRUconhsizeunità nascoste che restituisca il suo stato. - Ottieni gli output dal livello GRU passando
en_inputse assegna lo stato della GRU aen_statee l'output aen_out. - Definisci un
keras.models.Modelil cui input èen_inputse il cui output èen_statee stampa il riepilogo del modello.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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.____)