CLI Reference#

aucurriculum provides a command line interface (CLI) to manage the entire curriculum learning-based training process including configuration management, data preprocessing, model training, inference, postprocessing, and curriculum to obtain sample difficulty scores.

In addition to the CLI, aucurriculum provides a Python CLI wrapper to manage configurations, data, training, inference, postprocessing, and curriculum sample difficulty calculation programmatically with the same functionality as the CLI.

Note

Both the CLI and the Python CLI wrapper serve as a curriculum learning extension to autrainer. For more information on the autrainer CLI, refer to the autrainer CLI reference.

aucurriculum#

usage: aucurriculum [-h] [-v] <command> ...

A Curriculum Learning Toolkit for Deep Learning Tasks built on top of autrainer.

usage: aucurriculum [-h] [-v] <command> ...

Positional Arguments#

<command>

Possible choices: create, list, show, fetch, preprocess, train, inference, postprocess, rm-failed, rm-states, group, curriculum

Named Arguments#

-v, --version

show program’s version number and exit

Configuration Management#

To manage configurations, aucurriculum create, aucurriculum list, and aucurriculum show allow for the creation of the project structure and the discovery as well as saving of default configurations provided by aucurriculum and autrainer.

Tip

Default configurations can be discovered both through the CLI, the CLI wrapper, and the respective module documentation.

aucurriculum create#

usage: aucurriculum create [-h] [-e] [-a] [-f] [directories ...]

Create a new curriculum project with default configurations.

usage: aucurriculum create [-h] [-e] [-a] [-f] [directories ...]

Positional Arguments#

directories
Configuration directories to create. One or more of:
  • augmentation

  • curriculum

  • curriculum/pacing

  • curriculum/sampling

  • curriculum/scoring

  • dataset

  • model

  • optimizer

  • plotting

  • preprocessing

  • scheduler

Named Arguments#

-e, --empty

Create an empty project without any configuration directory.

-a, --all

Create a project with all configuration directories.

-f, --force

Force overwrite if the configuration directory already exists.

aucurriculum list#

usage: aucurriculum list [-h] [-l] [-g] [-p P] directory

List local and global configurations.

usage: aucurriculum list [-h] [-l] [-g] [-p P] directory

Positional Arguments#

directory
The directory to list configurations from. Choose from:
  • augmentation

  • curriculum

  • curriculum/pacing

  • curriculum/sampling

  • curriculum/scoring

  • dataset

  • model

  • optimizer

  • plotting

  • preprocessing

  • scheduler

Named Arguments#

-l, --local-only

List local configurations only.

-g, --global-only

List global configurations only.

-p, --pattern

Glob pattern to filter configurations.

aucurriculum show#

usage: aucurriculum show [-h] [-s] [-f] directory config

Show and save a global configuration.

usage: aucurriculum show [-h] [-s] [-f] directory config

Positional Arguments#

directory
The directory to list configurations from. Choose from:
  • augmentation

  • curriculum

  • curriculum/pacing

  • curriculum/sampling

  • curriculum/scoring

  • dataset

  • model

  • optimizer

  • plotting

  • preprocessing

  • scheduler

config

The global configuration to show. Configurations can be discovered using the ‘autrainer list’ command.

Named Arguments#

-s, --save

Save the global configuration to the local conf/ directory.

-f, --force

Force overwrite local configuration if it exists in combination with -s/–save.

Preprocessing#

To avoid race conditions when using hydra_launcher_plugins that may run multiple training jobs in parallel, aucurriculum fetch and aucurriculum preprocess allow for downloading and preprocessing of datasets (and pretrained model states) before training.

Both commands are based on the main configuration file (e.g. conf/config.yaml), such that the specified models and datasets are fetched and preprocessed accordingly. If a model or dataset is already fetched or preprocessed, it will be skipped.

For more information on fetching and preprocessing, refer to the autrainer preprocessing CLI reference.

Training#

Training is managed by aucurriculum train, which starts the training process based on the main configuration file (e.g. conf/config.yaml).

aucurriculum train#

usage: aucurriculum train [-h]

Launch a training configuration (Hydra). For more information on Hydra’s command line line flags, see: https://hydra.cc/docs/advanced/hydra-command-line-flags/.

usage: aucurriculum train [-h]

Inference#

aucurriculum inference allows for the (sliding window) inference of audio data using a trained model. For more information on the inference process, refer to the autrainer inference CLI reference.

Postprocessing#

Postprocessing allows for the summarization, visualization, and aggregation of the training results using aucurriculum postprocess. Several cleanup utilities are provided by aucurriculum rm-failed and aucurriculum rm-states. Manual grouping of the training results can be done using aucurriculum group.

aucurriculum postprocess#

usage: aucurriculum postprocess [-h] [-m N] [-a A [A ...]] results_dir experiment_id

Postprocess grid search results.

usage: aucurriculum postprocess [-h] [-m N] [-a A [A ...]]
                                results_dir experiment_id

Positional Arguments#

results_dir

Path to grid search results directory.

experiment_id

ID of experiment to postprocess.

Named Arguments#

-m, --max-runs

Maximum number of best runs to plot.

-a, --aggregate
Configurations to aggregate. One or more of:
  • augmentation

  • batch_size

  • curriculum

  • curriculum.pacing

  • curriculum.pacing.final_iteration

  • curriculum.pacing.initial_size

  • curriculum.sampling

  • curriculum.scoring

  • dataset

  • iterations

  • learning_rate

  • model

  • optimizer

  • scheduler

  • seed

For more information on the cleanup utilities and manual grouping, refer to the autrainer postprocessing CLI reference.

Curriculum Scoring

Curriculum scoring is managed by aucurriculum curriculum, which allows for the calculation of sample difficulty scores based on the training results and scoring functions.

aucurriculum curriculum#

usage: aucurriculum curriculum -cn curriculum.yaml

Launch a curriculum scoring function configuration (Hydra). For more information on Hydra’s command line line flags, see: https://hydra.cc/docs/advanced/hydra-command-line-flags/.

usage: aucurriculum curriculum [-h]