Spaces:
Sleeping
Sleeping
File size: 1,479 Bytes
14f6839 07cb7d3 14f6839 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | """
流水线各阶段之间传递的上下文对象。
这里放的都是轻量数据结构,用来描述运行目录、预处理结果、训练状态、训练计划和推理状态。
它们的作用是把阶段之间交换的数据显式化,避免大家直接传零散参数。
"""
from dataclasses import dataclass, field
from pathlib import Path
from typing import Any
from keras import callbacks as keras_callbacks
from deep_learning.models.spec import ModelArtifact
@dataclass
class PipelineRuntime:
"""流水线运行时的目录和名称上下文。"""
name: str
task_dir: Path
log_dir: Path
checkpoint_dir: Path
tensorboard_dir: Path
@dataclass
class PreparedData:
"""预处理后的训练输入,至少要包含训练集和验证集。"""
train_ds: Any
validation_ds: Any
@dataclass
class TrainingArtifactState:
"""训练模型及其对应检查点轮次。"""
training_artifact: ModelArtifact
checkpoint_epoch: int = 0
@dataclass
class TrainPlan:
"""编译阶段产出的训练计划。"""
epochs: int
steps_per_epoch: int | None = None
callbacks: list[keras_callbacks.Callback] = field(default_factory=list)
@dataclass
class TrainingResult:
"""训练阶段的返回结果包装。"""
history: Any
@dataclass
class InferenceArtifactState:
"""推理模型和推理时要配套使用的资源。"""
inference_artifact: ModelArtifact
inference_resource: object
|