Kích hoạt early stopping theo patience
Early stopping dừng huấn luyện khi mất mát kiểm định không còn cải thiện sau patience
Tiến độ của tôi ở bài này
Điểm và code bạn nộp đượ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: python-basics, python-lists.
Nội dung đề bài
Mô tả bài toán
Early stopping dừng huấn luyện khi mất mát kiểm định không còn cải thiện sau patience epoch liên tiếp. Ta cần xác định epoch mà việc dừng được kích hoạt, để báo cáo và cắt huấn luyện đúng lúc.
Yêu cầu
Viết hàm early_stop_epoch(losses, patience) trả về chỉ số epoch mà early stopping kích hoạt, hoặc -1 nếu không bao giờ kích hoạt.
Quy ước nộp bài
Nộp hàm early_stop_epoch trong solution.py. Hệ thống gọi hàm trực tiếp và so giá trị với sai số 1e-6; không đọc stdin và không in ra stdout.
Input
- losses: danh sách mất mát kiểm định theo từng epoch.
- patience: số epoch liên tiếp không cải thiện thì dừng, số nguyên dương.
Output
Chỉ số epoch (bắt đầu từ 0) nơi bộ đếm chờ đạt patience, hoặc -1. "Cải thiện" nghĩa là mất mát mới nhỏ hơn nghiêm ngặt so với mức tốt nhất.
Ràng buộc
- losses phải khác rỗng và patience >= 1; nếu không, hàm ném ValueError.
- Bộ đếm chờ được đặt lại về 0 mỗi khi có cải thiện.
Ví dụ 1
Input
early_stop_epoch(losses=[1.0, 0.9, 0.9, 0.9], patience=2)
Output
3
Ví dụ 2
Input
early_stop_epoch(losses=[1.0, 0.8, 0.6, 0.4], patience=1)
Output
-1
Giải thích
Với losses = [1.0, 0.9, 0.9, 0.9], patience = 2: epoch 1 cải thiện; epoch 2 và 3 không cải thiện nên bộ đếm đạt 2 tại epoch 3, kết quả là 3.
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.
