unilab.utils.sim2sim¶
Cross-backend sim2sim contract snapshot and resolution.
Functions
|
Extract the contract fields from a resolved training config keyed by dotted path. |
|
Re-raise a tensor shape mismatch during checkpoint load as a sim2sim diagnostic. |
|
Validate a target play config against the source training contract. |
Classes
Object facade over the module-level sim2sim contract API. |
Exceptions
Raised when a target play config diverges from the source training contract. |
- exception unilab.utils.sim2sim.CrossBackendIncompatibleError[source]¶
Bases:
RuntimeErrorRaised when a target play config diverges from the source training contract.
- unilab.utils.sim2sim.extract_contract_snapshot(full_cfg)[source]¶
Extract the contract fields from a resolved training config keyed by dotted path.
- unilab.utils.sim2sim.resolve_sim2sim_config(source_run_dir, target_cfg, *, algo_name=None, strict=True)[source]¶
Validate a target play config against the source training contract.
Returns
Noneifsource_run_dirisNone; otherwise returnstarget_cfgunchanged (never mutated). RaisesCrossBackendIncompatibleErrorunderstrictwhen any DENYLIST field differs, including asymmetric presence forENV_STRUCTURAL_DENYLISTpaths.
- unilab.utils.sim2sim.policy_load_dim_guard(*, env_obs_dim=None, env_action_dim=None, algo_name=None)[source]¶
Re-raise a tensor shape mismatch during checkpoint load as a sim2sim diagnostic.
Non-matching errors propagate unchanged, so a valid load is never blocked.
- class unilab.utils.sim2sim.Sim2SimConfigResolver[source]¶
Bases:
objectObject facade over the module-level sim2sim contract API.
- ALLOWLIST = ['training.sim_backend', 'env.scene', 'training.play_steps', 'env.domain_rand', 'env.noise_config', 'env.commands.vel_limit']¶
- WARNING_LIST = ['reward.scales', 'reward.base_height_target', 'reward.max_tilt_deg', 'reward.min_base_height', 'env.control_config.simulate_action_latency', 'env.ctrl_dt']¶
- DENYLIST = ['algo.obs_groups', 'env.control_config.action_scale', 'env.observations', 'env.actions', 'env.policy_observation_group', 'env.critic_observation_group', 'algo.policy.actor_hidden_dims', 'algo.policy.critic_hidden_dims', 'algo.empirical_normalization', 'algo.obs_normalization', 'env.commands.motion.params.sampling_mode']¶
- ENV_STRUCTURAL_DENYLIST = ['env.control_config.action_scale', 'env.observations', 'env.actions', 'env.policy_observation_group', 'env.critic_observation_group', 'env.commands.motion.params.sampling_mode']¶