Reproducibility Guide#

To ensure reproducibility of your results, the following guidelines should be followed. The goal is to allow others to reproduce the results of the project on any system by providing all necessary configurations and source code.

Project Structure#

The project should be structured in a way that makes it easy to publish and reproduce the results. Therefore the following project structure is recommended:

  • conf/: Directory for storing configuration files.

  • src/: Directory for storing additional source code. Additional source code can also be stored in the root directory of the project.

  • requirements.txt: File containing the pip requirements.

  • data/: Directory for storing data files (optional).

  • results/: Directory for storing results (optional).

To get started and create the initial project structure, the following configuration management CLI command can be used:

autrainer create --empty

Alternatively, use the following configuration management CLI wrapper function:

autrainer.cli.create(empty=True)

This will create an empty project structure only including the conf/config.yaml configuration file with default values.

Configuration Files#

All configuration files (not provided by autrainer or overridden) should be stored in the conf/ directory and published alongside the conf/config.yaml file. To ensure reproducibility on any system, it is recommended to solely use relative paths in the configuration files.

Custom configuration files (e.g. custom models or datasets) should be placed in the conf/ directory. The implementation of these configurations or further processing scripts should be placed in the src/ directory or in the root directory of the project.

In addition to configurations, the pip requirements should be stored in a requirements.txt file in the root directory of the project.

pip freeze > requirements.txt