Training

August 17, 2026 ยท View on GitHub

TransFuser trains in two phases: perception first, then planning on top of the pretrained weights.

Build the cache

Cacheable data (lidar raster, planning and detection targets) are precomputed once, for both normal and perturbated sensor views. The rest will be read directly from the py123d logs:

user@host:~/lead$ bash scripts/common/build_cache.sh

Training never builds the cache. Enabling read_from_cache_store without a built store fails at startup.

The store's manifest also carries a cache_finger_print: the config values that decide what a cached tensor holds (BEV geometry, sensor preprocessing, label knobs). Building or reading a store whose fingerprint no longer matches the current config fails the same way, instead of silently serving samples built under a different config โ€” rebuild it with force_cache_rebuild=true.

Training

Perception pre-training

user@host:~/lead$ bash scripts/common/pretrain.sh

From the pre-trained checkpoint we enable the planning decoder and start the post-training:

user@host:~/lead$ bash scripts/common/posttrain.sh

For training on multiple nodes or GPUs, see the SLURM scripts for pre-training and post-training.