train/eval và no_grad với Dropout
Phân biệt behavior train/eval của Dropout và tắt gradient khi chỉ đánh giá.
Tiến độ của tôi ở bài này
Điểm được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: Sequential MLP, activation, tensor requires grad.
Nội dung đề bài
Mục tiêu kiến thức
Phân biệt behavior train/eval của Dropout và tắt gradient khi chỉ đánh giá.
Mô tả bài toán
Đây là bài số 391 trong tầng PyTorch deep learning thực hành. Bài dùng thư viện Module.train, Module.eval, torch.no_grad, Dropout trên dữ liệu nhỏ, cố định và chạy CPU; mục tiêu là hiểu workflow chứ không bắt học viên tự viết lại thư viện.
Yêu cầu
Chạy cùng model hai lần ở train và eval, trả biết output có bằng nhau không, eval có requires_grad không.
def dropout_train_eval(X, dropout_probability):Input
X batch số và dropout_probability.
Output
Dictionary train_equal, eval_equal, eval_requires_grad, eval_output.
Ràng buộc
Gọi model.train cho hai lần đầu, model.eval cho eval và dùng torch.no_grad.
Ví dụ
Giải thích
p=0.5 thường cho hai output train khác nhau nhưng eval lặp lại giống nhau.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
