Definirea decodorului

Traducere automată cu Keras

Thushan Ganegedara

Data Scientist and Author

Modelul encoder-decoder

  • Encoderul procesează cuvintele în engleză unul câte unul
  • Produce în final vectorul de context
  • Decoderul primește vectorul de context ca stare inițială
  • Decoderul produce cuvintele în franceză unul câte unul

Model encoder-decoder

Traducere automată cu Keras

Intrarea decodorului

  • Decoderul este implementat cu un strat GRU Keras
  • Modelul GRU necesită două intrări
    • O intrare de tip serie temporală (???)
    • O stare ascunsă

Model encoder-decoder

Traducere automată cu Keras

Intrarea decodorului

Repetați vectorul de context din encoder de N ori

  • Pentru o propoziție în franceză de 10 cuvinte, vectorul de context se repetă de 10 ori.

Vector de context repetat în encoder-decoder

Traducere automată cu Keras

Înțelegerea stratului RepeatVector

Stratul RepeatVector:

  • Primește un argument care definește lungimea secvenței de ieșire
  • Acceptă o intrare de forma (batch_size, dimensiune_intrare) (ex. intrare de dimensiune 2 x 3)
  • Produce date de forma (batch_size, lungime_secvență, dimensiune_intrare) (ex. ieșire de dimensiune 2 x 3 x 3)

Funcționalitatea RepeatVector

Traducere automată cu Keras

Definirea unui strat 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)
  • Rețineți că următoarele două sunt echivalente
rep = RepeatVector(5)
r_out = rep(r_inp)
r_out = RepeatVector(5)(r_inp)
Traducere automată cu Keras

Predicții cu modelul

Predicții cu modelul

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)
Traducere automată cu Keras

Implementarea decodorului

Definirea decodorului

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

Fixarea stării inițiale a decodorului

gru_outputs = decoder_gru(de_inputs, initial_state=en_state)
Traducere automată cu Keras

Definirea modelului

enc_dec = Model(inputs=en_inputs, outputs=gru_outputs)
Traducere automată cu Keras

Să exersăm!

Traducere automată cu Keras

Preparing Video For Download...