Skip to content

deeplabcut.pose_estimation_pytorch.config.runner

Runner configuration class for DeepLabCut pose estimation models.

Classes:

Name Description
OptimizerConfig

Optimizer configuration.

RunnerConfig

Training runner configuration.

SchedulerConfig

Learning rate scheduler configuration.

SnapshotCheckpointConfig

Snapshot configuration for model checkpoints.

OptimizerConfig

Bases: DLCBaseConfig

Optimizer configuration.

Attributes:

Name Type Description
type str

Optimizer type (e.g., AdamW, SGD)

params dict[str, Any] | None

Optimizer parameters

Source code in deeplabcut/pose_estimation_pytorch/config/runner.py
class OptimizerConfig(DLCBaseConfig):
    """Optimizer configuration.

    Attributes:
        type: Optimizer type (e.g., AdamW, SGD)
        params: Optimizer parameters
    """

    type: str = ""
    params: dict[str, Any] | None = None

RunnerConfig

Bases: DLCBaseConfig

Training runner configuration.

Attributes:

Name Type Description
type str

Runner type (e.g., PoseTrainingRunner)

gpus Any | None

GPU configuration

key_metric str

Key metric for evaluation

key_metric_asc bool

Whether key metric should be ascending

eval_interval int

Evaluation interval in epochs

optimizer OptimizerConfig | None

Optimizer configuration

scheduler SchedulerConfig | None

Scheduler configuration

snapshots SnapshotCheckpointConfig | None

Snapshot configuration

load_weights_only bool | None

Value for torch.load() weights_only parameter

Source code in deeplabcut/pose_estimation_pytorch/config/runner.py
class RunnerConfig(DLCBaseConfig):
    """Training runner configuration.

    Attributes:
        type: Runner type (e.g., PoseTrainingRunner)
        gpus: GPU configuration
        key_metric: Key metric for evaluation
        key_metric_asc: Whether key metric should be ascending
        eval_interval: Evaluation interval in epochs
        optimizer: Optimizer configuration
        scheduler: Scheduler configuration
        snapshots: Snapshot configuration
        load_weights_only: Value for torch.load() weights_only parameter
    """

    type: str = "PoseTrainingRunner"
    # TODO @deruyter92: Currently different configs for device are used in
    # parallel. We should probably move to only 'PoseConfig.device'. This is
    # kept here for backwards compatibility.
    gpus: Any | None = None
    device: str = "auto"  # <- unused, but present in test scripts.
    key_metric: str = "test.mAP"
    key_metric_asc: bool = True
    eval_interval: int = 10
    optimizer: OptimizerConfig | None = None
    scheduler: SchedulerConfig | None = None
    snapshots: SnapshotCheckpointConfig | None = None
    snapshot_prefix: str | None = None
    load_weights_only: bool | None = None

SchedulerConfig

Bases: DLCBaseConfig

Learning rate scheduler configuration.

Attributes:

Name Type Description
type str

Scheduler type (e.g., LRListScheduler, CosineAnnealingLR, SequentialLR)

params dict[str, Any] | None

Scheduler parameters

Source code in deeplabcut/pose_estimation_pytorch/config/runner.py
class SchedulerConfig(DLCBaseConfig):
    """Learning rate scheduler configuration.

    Attributes:
        type: Scheduler type (e.g., LRListScheduler, CosineAnnealingLR, SequentialLR)
        params: Scheduler parameters
    """

    type: str = ""
    params: dict[str, Any] | None = None

SnapshotCheckpointConfig

Bases: DLCBaseConfig

Snapshot configuration for model checkpoints.

Attributes:

Name Type Description
max_snapshots int

Maximum number of snapshots to keep

save_epochs int

Interval for saving snapshots

save_optimizer_state bool

Whether to save optimizer state

Source code in deeplabcut/pose_estimation_pytorch/config/runner.py
class SnapshotCheckpointConfig(DLCBaseConfig):
    """Snapshot configuration for model checkpoints.

    Attributes:
        max_snapshots: Maximum number of snapshots to keep
        save_epochs: Interval for saving snapshots
        save_optimizer_state: Whether to save optimizer state
    """

    max_snapshots: int = 5
    save_epochs: int = 25
    save_optimizer_state: bool = False