Cursus
Hyperparameter sweeps
Cursus sweeps orchestrate grid and random hyperparameter searches across parallel workers with transactional trial claiming.
Create a sweep
project— the project name (must exist)space— the hyperparameter search space:- Grid:
{"values": [...]}(2–50 entries) on every dimension (≤10k combinations, ≤8 dims) - Random: also takes
{"min": .., "max": .., "scale": "linear"|"log"}
- Grid:
name— optional human-readable namemethod—"random"(default) or"grid"
Like init(), creation may raise — sweeps are control calls, not logging.
Claim trials
next_trial(sweep_id)claims the next config — transactionally for grid, so concurrent workers never share a cell- Returns
Nonewhen the grid is exhausted or the sweep finished/cancelled: clean loop exit - Transport errors raise (retry or abort the worker loop as you see fit)
Linking runs to sweeps
Pass sweep_id to init() — validated same-project and still running. Trials appear on the sweep's page with configs. Launch one worker process per machine for parallel search.
Group projects and named runs
- Group projects require membership — the server rejects non-members with 404
- Without
group, the project is org-wide and visible to every member - API keys are per-user; create one per machine
- Keys owned by viewers are read-scoped: they authenticate reads, but every write answers 403
- Deactivated users' keys are revoked automatically; deleted users' keys vanish with the account
What's next
- Logging Guide — metrics, artifacts, images, and config sync
- Troubleshooting
- Hyperparameter Sweep (cookbook)
