Appearance
Level 2 pipeline 四大块
Abstract
入口:
pythonlog_filenames = pipeline( data_config, model_config, evaluation_config, )这一层只解释:
pipeline(...)在最高层顺序上分成哪四大块,以及四块之间如何衔接。
1. 上一层与当前层位置
上一层是:
当前层是:
- Level 2:只看
pipeline(...)自己的四个高层逻辑块,不进入任何一块的内部。
当前层对应上一层中的具体位置是:
python
pipeline(data_config, model_config, evaluation_config)2. 当前层第一性
pipeline(...) 的第一性是:
把“已经组装好的
data_config + model_config + evaluation_config”变成“已经落盘的日志文件路径列表log_filenames”。
因此它的高层职责必须完整覆盖:
- 准备数据侧
- 准备模型侧
- 执行评测
- 收尾写日志
3. 当前命令的最小例子
在你当前命令下,这一层的典型配置语义是:
data_configdata_name_list = ["ETTh1.csv"]
model_config- 一个模型:
time_series_library.DLinear
- 一个模型:
evaluation_config- 一个策略:
rolling_forecast save_path = debug\\ETTh1_DLinear_rolling_min_allmetrics
- 一个策略:
4. Level 2 顺序图
5. 抽象索引树
6. 职责树
6.1 2A 数据侧
职责:
- 从
data_config确定要跑哪些序列 - 创建
data_src - 预加载数据
- 启动
data_server
输出:
data_name_listdata_srcdata_server
6.2 2B 模型侧
职责:
- 从
model_config构造model_factory_list
输出:
model_factory_list
6.3 2C 执行侧
职责:
- 针对每个模型工厂调用
eval_model(...)
输出:
result_list- 其中每个元素是
EvalResult
- 其中每个元素是
6.4 2D 收尾侧
职责:
- 调用
collect() - 把
result_df写成日志文件 - 生成
log_filenames
7. 输入输出接口
7.1 输入接口
data_config: dictmodel_config: dictevaluation_config: dict
7.2 关键中间变量
data_name_listmodel_factory_listresult_listlog_file_names
7.3 输出接口
return log_file_names
8. 函数 / 文件关系图
9. 与代码块的一一对应
9.1 第 1 块
对应:
python
dataset_name_list = ...
data_src = ...
data_name_list = ...
data_src.load_series_list(...)
data_server = GlobalStorageDataServer(...)
data_server.start_async()9.2 第 2 块
对应:
python
model_factory_list = get_models(model_config)9.3 第 3 块
对应:
python
result_list = [
eval_model(model_factory, data_name_list, evaluation_config)
for model_factory in model_factory_list
]9.4 第 4 块
对应:
python
for model_factory, result_itr, model_save_name in zip(...):
for i, result_df in enumerate(result_itr.collect()):
log_file_names.append(save_log(...))10. 当前例子怎么落地
在你当前这条命令下:
数据侧
- 只跑一个数据文件:
ETTh1.csv
模型侧
- 只跑一个模型工厂:
DLinear
执行侧
result_list长度是 1
收尾侧
- 最终生成 1 个日志文件路径,放进
log_filenames
11. 下一层入口
下一层要 BFS 细分的是第 3 块:
python
eval_model(model_factory, data_name_list, evaluation_config)对应:
当前主线里,Level 2 只有这一块已经继续细分:
2C 执行侧
12. 只留一句
Level 2 只看
pipeline(...)的四个高层块:数据、模型、执行、收尾。