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: |
required |
data
|
SplitData | None
|
Optional default :class: |
None
|
config
|
TrainingConfig | None
|
Training hyperparameters; defaults to a new :class: |
None
|
transforms
|
Any | None
|
Task-specific train/val data transforms (see |
None
|
loss
|
LossFactory | None
|
Loss override; falls back to |
None
|
monitor
|
MonitorSpec | None
|
Validation monitor for early stopping; falls back to |
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 |
required |
step_name
|
str
|
Key used in logs and result artifacts. |
required |
config
|
TrainingConfig | None
|
Optional override of |
None
|
log_to
|
Path | str | LogConfig | None
|
Per-run logging configuration. |
None
|
Returns:
| Name | Type | Description |
|---|---|---|
One |
StepTrainResult
|
class: |
Raises:
| Type | Description |
|---|---|
ValueError
|
If no training data is available. |