DeepDIVA makes it easy to reproduce an experiment. This is done by ensuring that:
Here are the some of the most common scenarios for reproducibility.
To make the source code easily available:
--seed <number>
--ignoregit
flag.Along with the data that was used to run the experiment, the experiment folder contains all the necessary information to reproduce the exact experiment:
logs.txt
in the experiment folder contain information about theargs.txt
contains all the command line arguments that were used with the specific source code.Let’s make a Github reproducible experiment using DeepDIVA.
set_up_dataloaders
in the file DeepDIVA/template/setup.py
.transforms.Resize(model_expected_input_size)
, to transforms.CenterCrop(model_expected_input_size)
While DeepDIVA can be helpful for experiment reproducibility, it nonetheless introduces a certain degree of overhead that is not desirable during development. In this scenario, one can suppress the requirement to have Github commits using the command --ignoregit
. In this situation, a copy of the code used to run an experiment is made and stored in the experiment folder inside a tarfile (DeepDIVA.tar.gz
).
As in the previous scenario, all arguments are still stored in args.txt
.
If a seed is not manually specified, a random number is chosen, logged and used to seed all the pseudo-random generators.