Principle:ARISE Initiative Robomimic Sweep Parameter Definition
| Knowledge Sources | |
|---|---|
| Domains | Robotics, Experiment_Management, Hyperparameter_Optimization |
| Last Updated | 2026-02-15 08:00 GMT |
Overview
A programmatic hyperparameter sweep definition pattern that accumulates parameter ranges with group-based co-sweeping and generates combinatorial experiment configurations.
Description
Sweep Parameter Definition provides a structured way to specify hyperparameter search spaces for robot learning experiments. Instead of manually creating individual experiment configurations, researchers define which parameters to sweep and their ranges. The system then generates all valid combinations automatically.
The key concept is parameter grouping: parameters with the same group ID are swept together (their values are zipped), while parameters with different group IDs are crossed (Cartesian product). This enables both:
- Independent sweeps: Different learning rates x different batch sizes
- Co-sweeping: Dataset path and dataset name must change together
The ConfigGenerator class accumulates parameter definitions via add_param calls, with each parameter specified by its hierarchical config key (e.g., "train/batch_size"), display name for experiment naming, group ID, and list of values.
Usage
Use this principle when designing hyperparameter searches for training experiments. Define parameters in a make_generator function (following the pattern in hyperparam_helper.py), then call generate() to produce configs and a launch script.
Theoretical Basis
# Abstract sweep definition pattern (not real implementation)
generator = ConfigGenerator(base_config_file="bc.json")
# Independent parameters (different groups → Cartesian product)
generator.add_param(key="train/learning_rate", name="lr", group=1,
values=[1e-3, 1e-4])
generator.add_param(key="train/batch_size", name="bs", group=2,
values=[32, 64, 128])
# Co-swept parameters (same group → zipped)
generator.add_param(key="train/data", name="ds", group=3,
values=["lift_ph.hdf5", "can_ph.hdf5"])
generator.add_param(key="experiment.name", name="task", group=3,
values=["lift", "can"])
# Total configs: 2 (lr) × 3 (bs) × 2 (ds+task) = 12 experiments
generator.generate()