Một giá trị beta trong lịch DDPM tuyến tính
DDPM thêm nhiễu theo một lịch beta_t tăng dần. Lịch tuyến tính nội suy đều giữa
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, ai-diffusion-forward.
Nội dung đề bài
Mô tả bài toán
DDPM thêm nhiễu theo một lịch beta_t tăng dần. Lịch tuyến tính nội suy đều giữa beta_start ở bước 0 và beta_end ở bước cuối. Giá trị beta_t quyết định lượng nhiễu mỗi bước và cả hệ số khuếch tán alpha_t = 1 - beta_t.
Yêu cầu
Viết hàm linear_beta_schedule(t, num_timesteps, beta_start=0.0001, beta_end=0.02) trả về beta tại bước t theo nội suy tuyến tính giữa beta_start và beta_end.
Quy ước nộp bài
Nộp hàm linear_beta_schedule trong solution.py. Hệ thống gọi hàm trực tiếp và so với sai số 1e-6; không đọc stdin và không in ra stdout.
Input
- t: chỉ số bước, 0 <= t < num_timesteps.
- num_timesteps: số bước (ít nhất 2).
- beta_start, beta_end: hai đầu của lịch, mặc định 0.0001 và 0.02.
Output
Một số thực beta_start + (beta_end - beta_start) * t / (num_timesteps - 1).
Ràng buộc
- num_timesteps >= 2 và 0 <= t < num_timesteps; vi phạm thì ném ValueError.
- beta_end >= beta_start; nếu không, ném ValueError.
- Chỉ dùng số học Python, không cần thư viện ngoài.
Ví dụ 1
Input
linear_beta_schedule(t=0, num_timesteps=1000)
Output
0.0001
Ví dụ 2
Input
linear_beta_schedule(t=999, num_timesteps=1000)
Output
0.02
Giải thích
Với t = 500, num_timesteps = 1000 mặc định, ta được 0.0001 + 0.0199 * 500 / 999 = 0.01005995995995996.
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.
