| """Mācīšanās ātruma plānotājs.""" | |
| from __future__ import annotations | |
| import math | |
| def cosine_schedule(step: int, total_steps: int, lr_max: float, lr_min: float = 1e-7) -> float: | |
| """Kosinusa LR grafiks.""" | |
| progress = step / max(total_steps, 1) | |
| return lr_min + (lr_max - lr_min) * 0.5 * (1 + math.cos(math.pi * progress)) | |
| def warmup_schedule(step: int, warmup_steps: int, lr_max: float) -> float: | |
| """Lineārs sildīšanās grafiks.""" | |
| if step >= warmup_steps: | |
| return lr_max | |
| return lr_max * step / max(warmup_steps, 1) | |