Configs¶
Hydra configuration files defining models, data modules, trainers, logging, and experiment settings.
All training and evaluation behaviour is controlled via these YAML configs.
How it works¶
The top-level config.yml defines the default configuration by including
entries from the subfolders:
defaults:
- model: simple
- data: dummy
- trainer: default
- logging: mlflow
- experiment: base
Hydra then loads the corresponding files:
configs/model/simple.ymlconfigs/data/dummy.ymlconfigs/trainer/default.ymlconfigs/logging/mlflow.ymlconfigs/experiment/base.yml
These files are merged together into one final config object, which is passed into the training script.
Subdirectories¶
model/Defines model architectures and their hyperparameters. Each file here must contain a
_target_field that points to a Python class implementing the model. Example: selecting different neural network variants or LightningModules.data/Configures DataModules, dataloaders, dataset paths, and batch sizes. Each file should describe how training/validation/test data is created or loaded.
trainer/Contains configurations for PyTorch Lightning’s Trainer: number of epochs, devices, precision settings, logging frequency, etc.
logging/Parameters for MLflow or other logging backends. This keeps experiment tracking separate from model or data settings.
experiment/Optional presets for organising runs (name, notes, parameter overrides). Useful for keeping track of different experiment configurations.
Using the configs¶
Hydra is invoked in train.py via:
@hydra.main(config_path="../../configs", config_name="config")
def main(cfg):
...
You can start training with the default config:
python -m FRAME_FM.training.train.py
Or override specific config options from the command line:
python -m FRAME_FM.training.train.py model=simple data=cifar10 trainer.max_epochs=50