Skip to content

Included Configurations

Hydra is organized around "configuration groups", which are collections of related configuration files. The reference training script is organized around several configuration groups which are intended to be used in routine experiments, as well as some others which should not generally need to be modified (hydra, lightningmodule).

meta — Metadata

uv run train.py meta.name=example_experiment meta.version=test_version_0 resume=path/to/previous/checkpoint.ckpt

Experiment metadata is configured using the meta config group, including an optional resume field which can be used to resume training from a previous checkpoint (with identical model settings).

Warning

Make sure to set the meta.name and meta.version fields!

size — Model Dimensions

uv run train.py size.d_model=256 size.d_feedforward=1024 size.nhead=4 size.enc_layers=3 size.dec_layers=3

Certain model dimensions can be configured globally using a size config group, which is referenced by other model configurations:

size:
  d_model: 512
  d_feedforward: 2048
  nhead: 8
  enc_layers: 4
  dec_layers: 4

base — Base Model

uv run train.py +base=occ3d_to_semseg

Load a base model using the specified configuration; see NRDKLightningModule.load_weights for details about how to configure this behavior.

path: results/example/base/weights.pth
rename:
- decoder.occ3d.unpatch: null
- decoder.occ3d: decoder.occ2d
path: results/example/base/weights.pth
rename:
- decoder.occ3d.unpatch: null
- decoder.occ3d: decoder.semseg
path: results/example/base/weights.pth
rename:
- decoder: null

datamodule — Dataloader

To configure the sensors to load:

uv run train.py sensors@datamodule.dataset.sensors=[radar,lidar,semseg,pose]

To configure which traces to include in the dataset:

uv run train.py traces@datamodule.traces=[bike,indoor,outdoor]

See nrdk.roverd.datamodule for more details about the dataloader configuration.

model — Model Architecture

uv run train.py model=default
uv run train.py model/decoder=semseg

The model is just any torch.nn.Module; the included TokenizerEncoderDecoder is a good starting point.

Warning

The reference configs are built around TokenizerEncoderDecoder, with the tokenizer, encoder, and decoder as nested sub-configs.

Note that these sub-configs must be specified as model/decoder=..., not model.decoder=...!


objective — Training Objective

uv run train.py objective=lidar3d

Training objectives are expected to implement the the Objective interface.

transforms — Data Processing

uv run train.py transforms@transforms.sample=[radar,lidar3d]

lightningmodule — Training Loop

The default lightningmodule config should not need to be modified, and pulls in the ${objective} and {$model} configs.