Bắt đầu ngayBắt đầu miễn phí

Huấn luyện mô hình

Trong bài này, bạn sẽ huấn luyện mô hình đã triển khai trước đó. Bạn có biết mô hình dịch máy dạng encoder–decoder của Google mất 2–4 ngày để huấn luyện không?

Ở bài này, bạn sẽ dùng một tập dữ liệu nhỏ gồm 1500 câu (tức en_textfr_text) để huấn luyện mô hình. Lượng dữ liệu này khó có thể cho hiệu quả tốt, nhưng phương pháp thì không đổi. Vấn đề chỉ là huấn luyện lâu hơn trên nhiều dữ liệu hơn. Bạn cũng đã được cung cấp mô hình nmt và hàm sents2seqs() mà bạn đã hiện thực trước đó. Bạn sẽ đảo ngược văn bản đầu vào của encoder để đạt hiệu năng tốt hơn trong bài này. Ở đây, en_x là đầu vào của encoder, còn de_x là đầu vào của decoder.

Bài tập này là một phần của khóa học

Machine Translation với Keras

Xem khóa học

Hướng dẫn bài tập

  • Lấy một batch duy nhất cho đầu vào encoder (các câu tiếng Anh từ chỉ số i đến i+bsize) bằng hàm sents2seqs(). Đầu vào cần được đảo ngược và onehot-encode.
  • Lấy một batch duy nhất cho đầu ra decoder (các câu tiếng Pháp từ chỉ số i đến i+bsize) bằng hàm sents2seqs(). Đầu vào cần được onehot-encode.
  • Huấn luyện mô hình trên một batch dữ liệu duy nhất gồm en_xde_y.
  • Lấy các chỉ số đánh giá cho en_xde_y bằng cách đánh giá mô hình với batch_size bằng bsize.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

n_epochs, bsize = 3, 250

for ei in range(n_epochs):
  for i in range(0,data_size,bsize):
    # Get a single batch of encoder inputs
    en_x = ____('source', ____, onehot=____, reverse=____)
    # Get a single batch of decoder outputs
    de_y = sents2seqs('target', fr_text[____], onehot=____)
    
    # Train the model on a single batch of data
    nmt.____(____, ____)    
    # Obtain the eval metrics for the training data
    res = nmt.____(____, de_y, batch_size=____, verbose=0)
    print("{} => Train Loss:{}, Train Acc: {}".format(ei+1,res[0], res[1]*100.0))  
Chỉnh sửa và Chạy Mã