Перейти к содержанию

Index

Training in Hyppopipe is orchestrated by Trainer for each pipeline step. The pipeline itself only declares the step sequence; Pipeline.train() accepts a mapping of step names to Trainer instances.

Key related types:

Entity Role
Trainer Trains one or more models for a step
TrainingConfig Epochs, batch size, device, optimizer, loss, monitor, early stopping
ModelCandidate Torchvision factory + pretrained weight variants
TrainResult Aggregated results with export to disk
from torchvision.models.resnet import ResNet18_Weights, resnet18

from hyppopipe.train import ModelCandidate, Trainer, TrainingConfig
from hyppopipe.train.objectives import ClassificationObjectives

common = TrainingConfig(epochs=20, batch_size=32, lr=1e-3, device="cuda")

result = pipeline.train(
    config=common,
    step_config={
        "classify": Trainer(
            data=splits,
            config=common.copy_with(epochs=30),
            model_candidates=[
                ModelCandidate(resnet18, ResNet18_Weights.IMAGENET1K_V1),
            ],
            monitor=ClassificationObjectives.monitor("accuracy"),
        ),
    },
)
result.export("artifacts/run_001")

During training, Trainer inspects the step's action type (ImageClassifier, ImageSegmentator, ImageLocalizer) and dispatches the appropriate task from hyppopipe.train.tasks.

Documentation

Trains one or more models for a pipeline step action.

Example

Train a classification step on a split dataset::

trainer = Trainer([resnet50], data=splits, config=TrainingConfig(epochs=5))
step_result = trainer.train(step=classify_step, step_name="classify")

__init__(model_candidates, data=None, *, config=None, transforms=None, loss=None, monitor=None, ignore_fails=False)

Configure models and defaults for :meth:train.

Parameters:

Name Type Description Default
model_candidates Sequence[Module | ModelCandidate]

Ready modules and/or :class:ModelCandidate factories.

required
data SplitData | None

Optional default :class:~hyppopipe.data.dataset.splits.SplitData.

None
config TrainingConfig | None

Training hyperparameters; defaults to a new :class:TrainingConfig.

None
transforms Any | None

Task-specific train/val data transforms (see hyppopipe.train.transforms).

None
loss LossFactory | None

Loss override; falls back to config.loss, then the task default.

None
monitor MonitorSpec | None

Validation monitor for early stopping; falls back to config.monitor, then validation loss (minimize).

None
ignore_fails bool

If True, log and skip failed candidates instead of raising.

False

train(*, step, step_name, config=None, log_to=None)

Train all model candidates for one pipeline step.

Parameters:

Name Type Description Default
step Step

Step whose action selects the :class:~hyppopipe.train.tasks.base.TrainingTask.

required
step_name str

Key used in logs and result artifacts.

required
config TrainingConfig | None

Optional override of self.config for this call.

None
log_to Path | str | LogConfig | None

Per-run logging configuration.

None

Returns:

Name Type Description
One StepTrainResult

class:~hyppopipe.train.result.ModelRunResult per successful candidate.

Raises:

Type Description
ValueError

If no training data is available.