Training with the CLI

The deepfense CLI wraps the same logic as train.py and test.py. Use whichever you prefer.

Train

deepfense train --config deepfense/config/train.yaml

Resume from a checkpoint:

deepfense train --config deepfense/config/train.yaml --resume outputs/exp/best_model.pth
Option Short Required Description
--config -c Yes Path to YAML config file
--resume -r No Path to checkpoint to resume from

Test

deepfense test --config deepfense/config/train.yaml --checkpoint outputs/exp/best_model.pth
Option Short Required Description
--config -c Yes Path to YAML config file (must include data.test section)
--checkpoint -ckpt Yes Path to .pth checkpoint

List Components

deepfense list                           # all components
deepfense list --component-type backends # only backends

Equivalent Script Commands

CLI Script
deepfense train -c config.yaml python train.py --config config.yaml
deepfense test -c config.yaml -ckpt model.pth python test.py --config config.yaml --checkpoint model.pth

Typical Workflow

# 1. Generate test data
python tests/create_samples.py

# 2. See what components are available
deepfense list

# 3. Edit config (choose frontend, backend, loss)
#    deepfense/config/train.yaml

# 4. Train
deepfense train --config deepfense/config/train.yaml

# 5. Test
deepfense test \
    --config deepfense/config/train.yaml \
    --checkpoint outputs/*/best_model.pth

Training Output

outputs/Wav2Vec2_Nes2Net_Example_20250401_120000/
├── config.yaml          # Saved config
├── train.log            # Full log
├── best_model.pth       # Best checkpoint
├── ckpts/               # All checkpoints
├── results/             # Per-epoch metrics
└── plots/               # Training curves

Troubleshooting

Problem Fix
CUDA out of memory Reduce batch_size, set freeze: True on frontend
Loss is NaN Reduce lr
EER stuck at 50% Check data paths, try different lr
deepfense: command not found Run pip install -e . from the repo root

Next Steps