ztxexp.types¶
ztxexp.types
¶
ztxexp 对外公开的运行时数据结构。
MetricEvent
dataclass
¶
单条指标事件。
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
step |
int
|
指标对应的 step(epoch/global step)。 |
timestamp |
str
|
事件时间(ISO8601)。 |
metrics |
dict[str, float]
|
指标字典。 |
split |
str
|
数据划分(train/valid/test)。 |
phase |
str
|
阶段标识(fit/eval/infer)。 |
源代码位于: ztxexp/types.py
__init__
¶
__init__(step: int, timestamp: str, metrics: dict[str, float], split: str = 'train', phase: str = 'fit') -> None
RunContext
dataclass
¶
单次实验运行上下文。
该对象由 ExpRunner 在每个 run 开始时构造,并传入用户实验函数。
exp_fn 的推荐契约如下:
- 函数签名:
exp_fn(ctx: RunContext) -> dict | None; - 返回
dict时框架会写入metrics.json; - 返回
None时不写metrics.json,但 run 仍可成功; - 业务产物统一写入
ctx.run_dir / "artifacts"; - 过程指标用
ctx.log_metric(...)写入metrics.jsonl。
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
run_id |
str
|
当前运行唯一 ID(同时也是 run 目录名)。 |
run_dir |
Path
|
当前运行目录绝对路径。 |
config |
dict[str, Any]
|
当前运行最终配置字典。 |
logger |
Logger
|
当前运行专属日志对象(输出到 run.log)。 |
meta |
RunMetadata
|
当前 run 元数据对象。 |
示例:
>>> def exp_fn(ctx: RunContext):
... lr = ctx.config["lr"]
... ctx.logger.info("lr=%s", lr)
... return {"score": 1.0 - lr}
源代码位于: ztxexp/types.py
__init__
¶
__init__(run_id: str, run_dir: Path, config: dict[str, Any], logger: Logger, meta: RunMetadata = RunMetadata(), _metrics_jsonl_path: Path | None = None, _trackers: list['Tracker'] = list()) -> None
log_metric
¶
记录 step 级指标并通知 tracker。
该方法用于写入过程曲线数据,不替代 exp_fn 的最终 return dict。
典型分工是:
1. ctx.log_metric 负责每步/每轮中间指标;
2. return dict 负责最终汇总指标。
参数:
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
step
|
int
|
当前 step(例如 epoch 或 global step)。 |
必需 |
metrics
|
dict[str, float]
|
指标字典,值应可转为 JSON(建议 |
必需 |
split
|
str
|
数据划分,如 |
'train'
|
phase
|
str
|
阶段标识,如 |
'fit'
|
返回:
| 类型 | 描述 |
|---|---|
None
|
None |
示例:
源代码位于: ztxexp/types.py
RunMetadata
dataclass
¶
运行元数据。
用于描述一次 run 的治理与复现上下文。字段均为可选,框架会在运行时 自动填充可采集部分(如 python 版本、平台、命令行等)。
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
experiment_name |
str | None
|
实验名称。 |
group |
str | None
|
实验分组。 |
tags |
dict[str, str] | list[str] | None
|
标签(可为字典或字符串列表)。 |
parent_run_id |
str | None
|
父 run ID(用于 lineage)。 |
attempt |
int | None
|
当前尝试次数(重试时递增)。 |
git_commit |
str | None
|
当前代码 commit。 |
python_version |
str | None
|
Python 版本。 |
platform |
str | None
|
运行平台描述。 |
hostname |
str | None
|
主机名。 |
started_cmd |
str | None
|
启动命令。 |
dataset_version |
str | None
|
数据版本标识。 |
seed |
int | None
|
随机种子。 |
extras |
dict[str, Any] | None
|
其它扩展元数据。 |
源代码位于: ztxexp/types.py
__init__
¶
__init__(experiment_name: str | None = None, group: str | None = None, tags: dict[str, str] | list[str] | None = None, parent_run_id: str | None = None, attempt: int | None = None, git_commit: str | None = None, python_version: str | None = None, platform: str | None = None, hostname: str | None = None, started_cmd: str | None = None, dataset_version: str | None = None, seed: int | None = None, extras: dict[str, Any] | None = None) -> None
RunSummary
dataclass
¶
一次批量执行的汇总结果。
属性:
| 名称 | 类型 | 描述 |
|---|---|---|
total |
int
|
本次执行计划中的配置总数。 |
succeeded |
int
|
成功运行数量。 |
failed |
int
|
失败运行数量。 |
skipped |
int
|
跳过运行数量。 |
duration_sec |
float
|
本次批量执行总耗时(秒)。 |
failed_run_ids |
list[str]
|
失败 run 的 ID 列表。 |
示例:
源代码位于: ztxexp/types.py
__init__
¶
__init__(total: int, succeeded: int, failed: int, skipped: int, duration_sec: float, failed_run_ids: list[str]) -> None