rohitg00/ai-engineering-from-scratch · error · ValueError
warmup_steps must be non-negative
Error message
warmup_steps must be non-negative
What it means
Error "warmup_steps must be non-negative" thrown in rohitg00/ai-engineering-from-scratch.
Source
Thrown at phases/19-capstone-projects/44-cosine-lr-warmup/code/main.py:56
@dataclass
class CosineWithWarmup:
"""Stateless cosine-with-warmup learning-rate schedule.
Step indexing convention: step zero is the very first training update. At
step zero the rate is exactly zero (the warmup ramp starts there). At
step warmup_steps the rate is exactly lr_max. At step total_steps the
rate is exactly lr_min. Past total_steps the rate stays at lr_min.
"""
warmup_steps: int
total_steps: int
lr_max: float
lr_min: float = 0.0
def __post_init__(self) -> None:
if self.warmup_steps < 0:
raise ValueError("warmup_steps must be non-negative")
if self.total_steps <= 0:
raise ValueError("total_steps must be positive")
if self.warmup_steps >= self.total_steps:
raise ValueError("warmup_steps must be less than total_steps")
if self.lr_max <= 0:
raise ValueError("lr_max must be positive")
if self.lr_min < 0:
raise ValueError("lr_min must be non-negative")
if self.lr_min > self.lr_max:
raise ValueError("lr_min must not exceed lr_max")
def lr(self, step: int) -> float:
if step < 0:
raise ValueError(f"step must be non-negative, got {step}")
if self.warmup_steps > 0 and step <= self.warmup_steps:
return self.lr_max * (step / self.warmup_steps)
if step >= self.total_steps:
return self.lr_minView on GitHub (pinned to 39ea8a1c6d)
When it happens
Trigger: Thrown at phases/19-capstone-projects/44-cosine-lr-warmup/code/main.py:56 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of rohitg00/ai-engineering-from-scratch@39ea8a1c6d (2026-08-26).
Data as JSON: /api/errors/768ded0855269aa3.
Report an issue: GitHub.