lisbet.config.schemas#

Classes

DataAugmentationConfig(**data)

Configuration for a single data augmentation technique.

DataAugmentationPipeline(**data)

DataConfig(**data)

ExperimentConfig(**data)

LSTMBackboneConfig(**data)

ModelConfig(**data)

TCNBackboneConfig(**data)

TrainingConfig(**data)

TransformerBackboneConfig(**data)

class lisbet.config.schemas.TransformerBackboneConfig(**data)[source]#
type: Literal['transformer']#
feature_dim: int | None#
embedding_dim: int#
hidden_dim: int#
num_heads: int#
num_layers: int#
max_length: int#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class lisbet.config.schemas.TCNBackboneConfig(**data)[source]#
type: Literal['tcn']#
feature_dim: int | None#
embedding_dim: int#
hidden_dim: int#
num_layers: int#
kernel_size: int#
dilation_base: int#
dropout: float#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class lisbet.config.schemas.LSTMBackboneConfig(**data)[source]#
type: Literal['lstm']#
feature_dim: int | None#
embedding_dim: int#
hidden_dim: int#
num_layers: int#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class lisbet.config.schemas.DataConfig(**data)[source]#
data_path: str#
data_format: str#
data_scale: str | None#
data_filter: str | None#
select_coords: str | None#
rename_coords: str | None#
window_size: int#
window_offset: int#
fps_scaling: float#
dev_ratio: float | None#
train_sample: float | None#
dev_sample: float | None#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class lisbet.config.schemas.DataAugmentationConfig(**data)[source]#

Configuration for a single data augmentation technique.

Augmentation families and parameter semantics:

Permutation-based :
  • all_perm_id: Full-window permutation of individual identities.

  • all_perm_ax: Full-window permutation of spatial axes.

  • blk_perm_id: Block (contiguous frames) permutation of individual

    identities. Uses frac for relative block length.

For these, p is the probability of applying the entire transform (implemented via RandomApply in the pipeline).

Jitter-based :
  • gauss_jitter: For the full window (time, keypoints,

    individuals), adds N(0, sigma) noise.

Ablation-based :
  • kp_ablation: Per-element Bernoulli(pB) mask over (time, keypoints,

    individuals), sets selected elements to 0.0 (all space dims). Simulates missing or occluded keypoints.

Rotation-based :
  • rotation: Random rotation of all keypoint coordinates around the

    center of the normalized coordinate space. Supports 2D and 3D (auto-detected). Uses max_angle for the rotation range and mode for post-rotation normalization.

Attributes:

name: Name of the augmentation technique p: Probability of applying this transformation (0.0 to 1.0) pB: When applicable, per-element Bernoulli probability (kp_ablation types only) frac: Fraction of frames to permute (only for block-based augmentations, 0.0

to 1.0 exclusive)

sigma: Standard deviation of Gaussian noise (jitter types only) max_angle: Maximum rotation angle in degrees (rotation only, default 180.0) mode: Post-rotation normalization mode (rotation only). One of “truncate”,

“rescale”, “none”. Default “truncate”.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid'}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

name: Literal['all_perm_id', 'all_perm_ax', 'blk_perm_id', 'gauss_jitter', 'kp_ablation', 'rotation']#
p: float#
pB: float | None#
frac: float | None#
sigma: float | None#
max_angle: float | None#
mode: str | None#
VALID_PARAMS: ClassVar[dict[str, set[str]]] = {'all_perm_ax': {'p'}, 'all_perm_id': {'p'}, 'blk_perm_id': {'frac', 'p'}, 'gauss_jitter': {'p', 'sigma'}, 'kp_ablation': {'p', 'pB'}, 'rotation': {'max_angle', 'mode', 'p'}}#
classmethod validate_probability(v)[source]#
classmethod validate_fraction(v, info)[source]#
classmethod validate_sigma(v)[source]#
classmethod validate_pB(v)[source]#
classmethod validate_max_angle(v)[source]#
classmethod validate_mode(v)[source]#
validate_parameters_for_augmentation()[source]#

Ensure only valid parameters are set for each augmentation type and apply defaults.

class lisbet.config.schemas.DataAugmentationPipeline(**data)[source]#
augmentations: list[DataAugmentationConfig]#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class lisbet.config.schemas.ModelConfig(**data)[source]#
model_id: str | None#
backbone: Annotated[TransformerBackboneConfig | LSTMBackboneConfig | TCNBackboneConfig, FieldInfo(annotation=NoneType, required=True, discriminator='type')]#
out_heads: dict[str, dict]#
input_features: dict[str, list[str]]#
window_size: int#
window_offset: int#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class lisbet.config.schemas.TrainingConfig(**data)[source]#
epochs: int#
batch_size: int#
learning_rate: float#
data_augmentation: list[DataAugmentationConfig] | None#
save_weights: str | None#
save_history: bool#
mixed_precision: bool#
head_type: Literal['mlp', 'linear']#
freeze_backbone_weights: bool#
load_backbone_weights: str | Path | None#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class lisbet.config.schemas.ExperimentConfig(**data)[source]#
run_id: str | None#
model: ModelConfig#
training: TrainingConfig#
data: DataConfig#
task_ids_list: list[str]#
task_data: str | None#
seed: int#
output_path: Path#
model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].