Definice dekodéru

Machine Translation with Keras

Thushan Ganegedara

Data Scientist and Author

Model enkodér-dekodér

  • Enkodér zpracovává anglická slova jedno po druhém
  • Nakonec vytvoří kontextový vektor
  • Dekodér používá kontextový vektor jako počáteční stav
  • Dekodér generuje francouzská slova jedno po druhém

Model enkodér-dekodér

Machine Translation with Keras

Vstup dekodéru

  • Dekodér je implementován pomocí vrstvy Keras GRU
  • Model GRU vyžaduje dva vstupy
    • Časovou řadu (???)
    • Skrytý stav

Model enkodér-dekodér

Machine Translation with Keras

Vstup dekodéru

Opakování kontextového vektoru z enkodéru N-krát

  • Pro francouzskou větu o 10 slovech se kontextový vektor opakuje 10krát.

Model enkodér-dekodér s vektorem opakování

Machine Translation with Keras

Pochopení vrstvy RepeatVector

Vrstva RepeatVector:

  • Přijímá jeden argument definující délku výstupní sekvence
  • Vstup má tvar (batch_size, velikost vstupu) (např. 2 x 3)
  • Výstup má tvar (batch_size, délka sekvence, velikost vstupu) (např. 2 x 3 x 3)

Funkce vektoru opakování

Machine Translation with Keras

Definice vrstvy 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)
  • Následující dva zápisy jsou ekvivalentní
rep = RepeatVector(5)
r_out = rep(r_inp)
r_out = RepeatVector(5)(r_inp)
Machine Translation with Keras

Predikce s modelem

Predikce s modelem

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)
Machine Translation with Keras

Implementace dekodéru

Definice dekodéru

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

Nastavení počátečního stavu dekodéru

gru_outputs = decoder_gru(de_inputs, initial_state=en_state)
Machine Translation with Keras

Definice modelu

enc_dec = Model(inputs=en_inputs, outputs=gru_outputs)
Machine Translation with Keras

Pojďme cvičit!

Machine Translation with Keras

Preparing Video For Download...