The SPANet options can be provided either programmatically or using a .json file.
The Options class in spanet/options.py defines all
of the valid options used during training and evaluation. You can quickly
experiment with different options by simply modifying this file or providing
it as part of a different script.
spanet/options.py defines the default parameters which
are fed to all networks. However, you often want to experiment with many different
options without having to always modify the codebase.
The other method of providing the options is by using a .json file
and a command line argument to train.py. An example of such a file is provided
in options_files/ttbar_example.json.
The .json options file will override all of the defaults specified in
spanet/options.py for the given training run.
You can provide train.py an options file via the command line argument
python train.py -of OPTIONS_FILE
You can also programmatically load in a .json file with Options.load(filepath)
from spanet/options.py if you are running your own
training script.
Whenever a network is training, it will always create a copy of its
current options in the checkpoint directory.
The default output directories are of the form spanet_output/version_*.
train.py also allows you to temporarily override certain options using
command line arguments. You can view a complete list of these options
using python train.py --help. Some common ones include:
--gpus Nto select the number of GPUS to train on.--batch_size Nto set the training batch_size.--epochs Nto set the number of training epochs.--log_dir DIRto set the output directory to something different from the current directory.--name NAMEto set the log directory name to something differnt thanlightning_logs.