rohitg00/ai-engineering-from-scratch · error · ValueError

steps must be > 0, got {cfg.steps}

Error message

steps must be > 0, got {cfg.steps}

What it means

Error "steps must be > 0, got {cfg.steps}" thrown in rohitg00/ai-engineering-from-scratch.

Source

Thrown at phases/19-capstone-projects/60-projection-layer-modality-align/code/main.py:141

def freeze(module: nn.Module) -> None:
    for p in module.parameters():
        p.requires_grad_(False)


@dataclass
class TrainStats:
    initial_loss: float
    final_loss: float
    final_cos: float
    losses: list[float]


def train(cfg: AlignConfig) -> tuple[MLPProjector, TrainStats]:
    if cfg.pairs <= 0:
        raise ValueError(f"pairs must be > 0, got {cfg.pairs}")
    if cfg.steps <= 0:
        raise ValueError(f"steps must be > 0, got {cfg.steps}")
    if cfg.max_caption_len < 4:
        raise ValueError(
            f"max_caption_len must be >= 4 for make_pair(), got {cfg.max_caption_len}"
        )

    torch.manual_seed(cfg.seed)

    encoder_cfg = ViTConfig(image_size=224, patch_size=16, hidden=cfg.vision_hidden,
                            depth=4, heads=8, mlp_ratio=2.0)
    encoder = VisionEncoder(encoder_cfg).eval()
    freeze(encoder)

    text = MockTextEmbedding(cfg.vocab_size, cfg.text_hidden, seed=cfg.seed + 1)
    freeze(text)

    projector = MLPProjector(cfg.vision_hidden, cfg.projection_hidden, cfg.text_hidden)

    pairs = [make_pair(seed=cfg.seed + 1000 + i,

View on GitHub (pinned to 39ea8a1c6d)

When it happens

Trigger: Thrown at phases/19-capstone-projects/60-projection-layer-modality-align/code/main.py:141 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/74b88684afc2f841. Report an issue: GitHub.