Định nghĩa decoder

Machine Translation với Keras

Thushan Ganegedara

Data Scientist and Author

Mô hình encoder–decoder

  • Encoder nhận từng từ tiếng Anh
  • Cuối cùng tạo vector ngữ cảnh
  • Decoder dùng vector ngữ cảnh làm trạng thái ban đầu
  • Decoder sinh từng từ tiếng Pháp

Mô hình encoder–decoder

Machine Translation với Keras

Đầu vào của decoder

  • Decoder được cài bằng lớp GRU của Keras
  • GRU cần hai đầu vào
    • Chuỗi thời gian (???)
    • Trạng thái ẩn

Mô hình encoder–decoder

Machine Translation với Keras

Đầu vào của decoder

Lặp vector ngữ cảnh từ encoder N lần

  • Ví dụ: câu tiếng Pháp 10 từ → lặp vector ngữ cảnh 10 lần.

Lặp vector ngữ cảnh

Machine Translation với Keras

Hiểu lớp RepeatVector

Lớp RepeatVector:

  • Nhận một tham số xác định độ dài chuỗi đầu ra
  • Nhận đầu vào dạng (batch_size, input size) (vd. 2 x 3)
  • Xuất dữ liệu dạng (batch_size, sequence length, input size) (vd. 2 x 3 x 3)

Chức năng RepeatVector

Machine Translation với Keras

Định nghĩa lớp 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)
  • Lưu ý hai cách sau là tương đương
rep = RepeatVector(5)
r_out = rep(r_inp)
r_out = RepeatVector(5)(r_inp)
Machine Translation với Keras

Dự đoán với mô hình

Dự đoán với mô hình

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 với Keras

Cài đặt decoder

Định nghĩa decoder

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

Cố định trạng thái ban đầu của decoder

gru_outputs = decoder_gru(de_inputs, initial_state=en_state)
Machine Translation với Keras

Định nghĩa mô hình

enc_dec = Model(inputs=en_inputs, outputs=gru_outputs)
Machine Translation với Keras

Let's practice!

Machine Translation với Keras

Preparing Video For Download...