Definire il decoder

Traduzione automatica con Keras

Thushan Ganegedara

Data Scientist and Author

Modello encoder-decoder

  • L’encoder legge parole inglesi una per volta
  • Infine produce il vettore contesto
  • Il decoder usa quel vettore come stato iniziale
  • Il decoder genera parole francesi una per volta

Modello encoder-decoder

Traduzione automatica con Keras

Input del decoder

  • Il decoder è una GRU di Keras
  • La GRU richiede due input
    • Un input di serie temporale (???)
    • Uno stato nascosto

Modello encoder-decoder

Traduzione automatica con Keras

Input del decoder

Ripeti N volte il vettore contesto dell’encoder

  • Per una frase francese di 10 parole, ripeti il vettore 10 volte.

Ripeti il vettore contesto

Traduzione automatica con Keras

Capire RepeatVector

Layer RepeatVector:

  • Un argomento: la lunghezza della sequenza in output
  • Input: (batch_size, input_size) (es. 2 x 3)
  • Output: (batch_size, seq_len, input_size) (es. 2 x 5 x 3)

Funzionalità di RepeatVector

Traduzione automatica con Keras

Definire un layer RepeatVector

from tensorflow.keras.layers import RepeatVector
rep = RepeatVector(5)
r_inp = Input(shape=(3,))
r_out = rep(r_inp)
repeat_model = Model(inputs=r_inp, outputs=r_out)
  • Nota: i due seguenti sono equivalenti
rep = RepeatVector(5)
r_out = rep(r_inp)
r_out = RepeatVector(5)(r_inp)
Traduzione automatica con Keras

Previsioni con il modello

Previsioni con il modello

x = np.array([[0,1,2],[3,4,5]])
y = repeat_model.predict(x)
print('x.shape = ',x.shape,'\ny.shape = ',y.shape)
x.shape =  (2, 3) 
y.shape =  (2, 5, 3)
Traduzione automatica con Keras

Implementare il decoder

Definire il decoder

de_inputs = RepeatVector(fr_len)(en_state)
decoder_gru = GRU(hsize, return_sequences=True)

Fissare lo stato iniziale del decoder

gru_outputs = decoder_gru(de_inputs, initial_state=en_state)
Traduzione automatica con Keras

Definire il modello

enc_dec = Model(inputs=en_inputs, outputs=gru_outputs)
Traduzione automatica con Keras

Ayo berlatih!

Traduzione automatica con Keras

Preparing Video For Download...