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

Index

Обучение в Hyppopipe организуется через Trainer для каждого шага пайплайна. Сам Pipeline только описывает последовательность шагов; метод Pipeline.train() принимает словарь «имя шага → Trainer».

Связанные сущности:

Сущность Назначение
Trainer Обучает одну или несколько моделей для шага
TrainingConfig Эпохи, batch size, device, оптимизатор, loss, monitor, early stopping
ModelCandidate Фабрика torchvision + варианты предобученных весов
TrainResult Сводный результат с экспортом на диск
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")

При обучении Trainer определяет тип действия шага (ImageClassifier, ImageSegmentator, ImageLocalizer) и вызывает соответствующую задачу из hyppopipe.train.tasks.

Документация

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.