sleap.nn.config.training_job#

Serializable configuration classes for specifying all training job parameters.

These configuration classes are intended to specify all the parameters required to run a training job or perform inference from a serialized one.

They are explicitly not intended to implement any of the underlying functionality that they parametrize. This serves two purposes:

  1. Parameter specification through simple attributes. These can be read/edited by a

    human, as well as easily be serialized/deserialized to/from simple dictionaries and JSON.

  2. Decoupling from the implementation. This makes it easier to design functional

    modules with attributes/parameters that contain objects that may not be easily serializable or may implement additional logic that relies on runtime information or other parameters.

In general, classes that implement the actual functionality related to these configuration classes should provide a classmethod for instantiation from the configuration class instances. This makes it easier to implement other logic not related to the high level parameters at creation time.

Conveniently, this format also provides a single location where all user-facing parameters are aggregated and documented for end users (as opposed to developers).

class sleap.nn.config.training_job.TrainingJobConfig(data: DataConfig = NOTHING, model: ModelConfig = NOTHING, optimization: OptimizationConfig = NOTHING, outputs: OutputsConfig = NOTHING, name: str | None = '', description: str | None = '', sleap_version: str | None = '1.4.1a2', filename: str | None = '')[source]#

Configuration of a training job.

data#

Configuration options related to the training data.

Type:

sleap.nn.config.data.DataConfig

model#

Configuration options related to the model architecture.

Type:

sleap.nn.config.model.ModelConfig

optimization#

Configuration options related to the training.

Type:

sleap.nn.config.optimization.OptimizationConfig

outputs#

Configuration options related to outputs during training.

Type:

sleap.nn.config.outputs.OutputsConfig

name#

Optional name for this configuration profile.

Type:

str | None

description#

Optional description of the configuration.

Type:

str | None

sleap_version#

Version of SLEAP that generated this configuration.

Type:

str | None

filename#

Path to this config file if it was loaded from disk.

Type:

str | None

classmethod from_json(json_data: str) TrainingJobConfig[source]#

Create training job configuration from JSON text data.

Parameters:

json_data – JSON-formatted string that specifies the configurations.

Returns:

A TrainingJobConfig instance parsed from the JSON text.

classmethod from_json_dicts(json_data_dicts: Dict[str, Any]) TrainingJobConfig[source]#

Create training job configuration from dictionaries decoded from JSON.

Parameters:

json_data_dicts – Dictionaries that specify the configurations. These are typically generated by structuring raw JSON formatted text.

Returns:

A TrainingJobConfig instance parsed from the JSON dicts.

classmethod load_json(filename: str, load_training_config: bool = True) TrainingJobConfig[source]#

Load a training job configuration from a file.

Parameters:
  • filename – Path to a training job configuration JSON file or a directory containing "training_job.json".

  • load_training_config – If True (the default), prefer training_job.json over initial_config.json if it is present in the same folder.

Returns:

A TrainingJobConfig instance parsed from the file.

save_json(filename: str)[source]#

Save the configuration to a JSON file.

Parameters:

filename – Path to save the training job file to.

to_json() str[source]#

Serialize the configuration into JSON-encoded string format.

Returns:

The JSON encoded string representation of the configuration.

sleap.nn.config.training_job.load_config(filename: str, load_training_config: bool = True) TrainingJobConfig[source]#

Load a training job configuration for a model run.

Parameters:
  • filename – Path to a JSON file or directory containing training_job.json.

  • load_training_config – If True (the default), prefer training_job.json over initial_config.json if it is present in the same folder.

Returns:

The parsed TrainingJobConfig.