hydra:
  run:
    dir: ${output_dir}
  output_subdir: ${output_dir}/code/hydra           # Store hydra's config breakdown here for debugging
  searchpath:                                       # Only <exp_dir> in these paths are discoverable
    - det_map/config/defaults
    - det_map/config
    - det_map/config/splits
    - det_map/config/agent
    # - pkg://navsim.planning.script.config.training

defaults:
  - default_common
  - default_evaluation
  - default_train_val_test_log_split
  - agent: map_agent
  - scene_filter: det_all_scenes

split: mini

dataloader:
  params:
    batch_size: 32  # number of samples per batch
    num_workers: 4  # number of workers for data loading
    pin_memory: true  # pin memory for faster GPU transfer
    prefetch_factor: 1

trainer:
  params:
    max_epochs: 20  # maximum number of training epochs
    check_val_every_n_epoch: 1  # run validation set every n training epochs
    val_check_interval: 1.0  # [%] run validation set every X% of training set

    limit_train_batches: 1.0  # how much of training dataset to check (float = fraction, int = num_batches)
    limit_val_batches: 1.0  # how much of validation dataset to check (float = fraction, int = num_batches)

    accelerator: gpu  # distribution method
    strategy: ddp
    precision: 32  # floating point precision
    num_nodes: 1  # Number of nodes used for training

    num_sanity_val_steps: 0  # number of validation steps to run before training begins
    fast_dev_run: false  # runs 1 batch of train/val/test for sanity

    accumulate_grad_batches: 1  # accumulates gradients every n batches
    # track_grad_norm: -1  # logs the p-norm for inspection
    gradient_clip_val: 0.0  # value to clip gradients
    gradient_clip_algorithm: norm  # [value, norm] method to clip gradients