Huấn luyện mô hình với tập kiểm định
Tại đây bạn sẽ học cách huấn luyện mô hình dịch máy neural kèm bước kiểm định.
Bạn được cung cấp mô hình nmt đã tạo ở chương trước. Bên cạnh đó, bạn sẽ huấn luyện mô hình trên các câu tiếng Anh và tiếng Pháp lấy từ Udacity Github Repo. Bạn có sẵn văn bản huấn luyện tiếng Anh (tr_en) và tiếng Pháp (tf_fr) cũng như văn bản kiểm định tiếng Anh (v_en) và tiếng Pháp (v_fr) từ bài trước.
Huấn luyện mô hình sẽ mất chút thời gian nên mã của bạn sẽ chạy lâu hơn một chút.
Bài tập này là một phần của khóa học
Machine Translation với Keras
Hướng dẫn bài tập
- Tạo dữ liệu kiểm định bằng cách biến đổi
v_envàv_frvới hàmsents2seqs. - Lấy một batch đầu vào và đầu ra đã biến đổi đúng định dạng bằng hàm
sents2seqs. - Dùng đầu vào (
en_x) và đầu ra (de_y) để huấn luyệnnmttrên một batch đơn. - Dùng
v_en_xvàv_de_ycùng vớivalid_sizelàmbatch_sizeđể đánh giá mô hìnhnmtvà lấy độ chính xác kiểm định.
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.
# Convert validation data to onehot
v_en_x = ____(____, ____, onehot=____, reverse=____)
v_de_y = ____(____, ____, onehot=True)
n_epochs, bsize = 3, 250
for ei in range(n_epochs):
for i in range(0,train_size,bsize):
# Get a single batch of inputs and outputs
en_x = ____(____, tr_en[____:____], onehot=____, reverse=____)
de_y = sents2seqs(____, tr_fr[____:____], onehot=True)
# Train the model on a single batch of data
nmt.____(____, ____)
# Evaluate the trained model on the validation data
res = nmt.evaluate(____, ____, batch_size=valid_size, verbose=0)
print("{} => Loss:{}, Val Acc: {}".format(ei+1,res[0], res[1]*100.0))