Mendefinisikan decoder

Penerjemahan Mesin dengan Keras

Thushan Ganegedara

Data Scientist and Author

Model encoder-decoder

  • Encoder memproses kata Bahasa Inggris satu per satu
  • Terakhir menghasilkan context vector
  • Decoder memakai context vector sebagai state awal
  • Decoder menghasilkan kata Bahasa Prancis satu per satu

Model encoder-decoder

Penerjemahan Mesin dengan Keras

Input decoder

  • Decoder diimplementasikan dengan layer Keras GRU
  • Model GRU memerlukan dua masukan
    • Input deret waktu (???)
    • Hidden state

Model encoder-decoder

Penerjemahan Mesin dengan Keras

Input decoder

Ulangi context vector dari encoder sebanyak N kali

  • Untuk menghasilkan kalimat Prancis 10 kata, ulangi context vector 10 kali.

Repeat vector pada model encoder-decoder

Penerjemahan Mesin dengan Keras

Memahami layer RepeatVector

Layer RepeatVector:

  • Satu argumen untuk panjang urutan output
  • Input berbentuk (batch_size, ukuran input) (mis. input ukuran 2 x 3)
  • Output berbentuk (batch_size, panjang urutan, ukuran input) (mis. output ukuran 2 x 3 x 3)

Fungsionalitas RepeatVector

Penerjemahan Mesin dengan Keras

Mendefinisikan 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)
  • Catatan: dua cara berikut setara
rep = RepeatVector(5)
r_out = rep(r_inp)
r_out = RepeatVector(5)(r_inp)
Penerjemahan Mesin dengan Keras

Memprediksi dengan model

Memprediksi dengan model

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)
Penerjemahan Mesin dengan Keras

Mengimplementasikan decoder

Mendefinisikan decoder

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

Mengatur state awal decoder

gru_outputs = decoder_gru(de_inputs, initial_state=en_state)
Penerjemahan Mesin dengan Keras

Mendefinisikan model

enc_dec = Model(inputs=en_inputs, outputs=gru_outputs)
Penerjemahan Mesin dengan Keras

Ayo berlatih!

Penerjemahan Mesin dengan Keras

Preparing Video For Download...