Extra Configuration

To create a new experiment-specific configuration variable, you can override the extra_parameters classmethod on your custom Experiment class:

@classmethod
def extra_parameters(cls):
    config = get_config()
    config.register('n', int, [], False)

Additionally you can define an extra_parameters function in your experiment.py file, and both will be respected:

def extra_parameters():
    config.register('n', int, [], False)

Here, 'n' is a string with the name of the parameter, int is its type, [] is a list of synonyms that be used to access the same parameter, and False is a boolean signifying that this configuration parameter is not sensitive and can be saved in plain text. Once defined in this way, a parameter can be used anywhere that built-in parameters are used.

An optional validators parameter can also be passed, which must be either None or a list of callables that take a single argument (the value of the config) and may raise a ValueError describing why the value is invalid.