Skip to content

deeplabcut.pose_estimation_pytorch.config.inference

Inference configuration classes for DeepLabCut pose estimation models.

Classes:

Name Description
AutocastConfig

Automatic mixed precision configuration.

CompileConfig

Model compilation configuration for inference optimization.

EvaluationConfig

Configuration for evaluation metrics computation.

InferenceConfig

Complete inference configuration.

MultithreadingConfig

Multithreading configuration for inference.

AutocastConfig

Bases: DLCBaseConfig

Automatic mixed precision configuration.

Attributes:

Name Type Description
enabled bool

Whether autocast is enabled

dtype bool

Data type for autocast (float16, bfloat16)

Source code in deeplabcut/pose_estimation_pytorch/config/inference.py
class AutocastConfig(DLCBaseConfig):
    """Automatic mixed precision configuration.

    Attributes:
        enabled: Whether autocast is enabled
        dtype: Data type for autocast (float16, bfloat16)
    """

    enabled: bool = False

CompileConfig

Bases: DLCBaseConfig

Model compilation configuration for inference optimization.

Attributes:

Name Type Description
enabled bool

Whether compilation is enabled

mode bool

Compilation mode

Source code in deeplabcut/pose_estimation_pytorch/config/inference.py
class CompileConfig(DLCBaseConfig):
    """Model compilation configuration for inference optimization.

    Attributes:
        enabled: Whether compilation is enabled
        mode: Compilation mode
    """

    enabled: bool = False
    backend: str = "inductor"

EvaluationConfig

Bases: DLCBaseConfig

Configuration for evaluation metrics computation.

Attributes:

Name Type Description
pcutoff float | list[float] | dict[str, float]

Confidence threshold for RMSE computation. Can be: - float: Single threshold for all bodyparts - list[float]: One value per bodypart (and unique bodypart if any) - dict[str, float]: Mapping bodypart names to thresholds

comparison_bodyparts Literal['all'] | list[str] | None

Subset of bodyparts to compute metrics for. Can be "all", None (all bodyparts), or a list of bodypart names.

per_keypoint_evaluation bool

Whether to compute train and test RMSE for each keypoint individually.

force_multi_animal bool

If True, use multi-animal evaluation even if loader contains only a single animal.

Source code in deeplabcut/pose_estimation_pytorch/config/inference.py
class EvaluationConfig(DLCBaseConfig):
    """Configuration for evaluation metrics computation.

    Attributes:
        pcutoff: Confidence threshold for RMSE computation. Can be:
            - float: Single threshold for all bodyparts
            - list[float]: One value per bodypart (and unique bodypart if any)
            - dict[str, float]: Mapping bodypart names to thresholds
        comparison_bodyparts: Subset of bodyparts to compute metrics for.
            Can be "all", None (all bodyparts), or a list of bodypart names.
        per_keypoint_evaluation: Whether to compute train and test RMSE
            for each keypoint individually.
        force_multi_animal: If True, use multi-animal evaluation even if
            loader contains only a single animal.
    """

    mode: Literal["train", "test", "all"] = "all"
    pcutoff: float | list[float] | dict[str, float] = 0.6
    comparison_bodyparts: Literal["all"] | list[str] | None = "all"
    per_keypoint_evaluation: bool = False
    force_multi_animal: bool = False

InferenceConfig

Bases: DLCBaseConfig

Complete inference configuration.

Attributes:

Name Type Description
multithreading MultithreadingConfig

Multithreading configuration

compile CompileConfig

Compilation configuration

autocast AutocastConfig

Autocast configuration

conditions dict[str, Any] | None

Conditions for conditional models (CTD)

snapshot int | str | list[int] | None

Snapshot(s) to use for inference

eval EvaluationConfig

Evaluation configuration

Source code in deeplabcut/pose_estimation_pytorch/config/inference.py
class InferenceConfig(DLCBaseConfig):
    """Complete inference configuration.

    Attributes:
        multithreading: Multithreading configuration
        compile: Compilation configuration
        autocast: Autocast configuration
        conditions: Conditions for conditional models (CTD)
        snapshot: Snapshot(s) to use for inference
        eval: Evaluation configuration
    """

    multithreading: MultithreadingConfig = Field(default_factory=MultithreadingConfig)
    compile: CompileConfig = Field(default_factory=CompileConfig)
    autocast: AutocastConfig = Field(default_factory=AutocastConfig)
    conditions: dict[str, Any] | None = None
    snapshot: int | str | list[int] | None = None
    eval: EvaluationConfig = Field(default_factory=EvaluationConfig)
    output_dir: str | None = None

MultithreadingConfig

Bases: DLCBaseConfig

Multithreading configuration for inference.

Attributes:

Name Type Description
enabled bool

Whether multithreading is enabled

queue_length int

Length of the processing queue

timeout float

Timeout for processing tasks

Source code in deeplabcut/pose_estimation_pytorch/config/inference.py
class MultithreadingConfig(DLCBaseConfig):
    """Multithreading configuration for inference.

    Attributes:
        enabled: Whether multithreading is enabled
        queue_length: Length of the processing queue
        timeout: Timeout for processing tasks
    """

    enabled: bool = True
    queue_length: int = 4
    timeout: float = 30.0