Skip to content

Conversation

@Les1ie
Copy link

@Les1ie Les1ie commented Mar 18, 2025

简单地基于lightning重构了框架,适配了原框架的大部分命令和配置。建议作为一个使用lightning替换后端的分支的起点。

基本说明

简单运行(训练+校验+测试):

python run.py --config=examples/lightning_config.yaml fit

仅测试(需要替换CKPT_PATH,如fit后保存的模型examples\lightning_logs\PEMS08\best.ckpt):

python run.py --config=examples/lightning_config.yaml test --ckpt_path {CKPT_PATH}

查看训练日志

tensorboard --logdir .\examples\lightning_logs

主要重构部分

  • .gitignore:增加 .ckpt 文件。
  • basicts/data/tsf_datamodule.py:使用 LightningDataModule 包装数据集和加载器。
  • basicts/model.py:主要类依赖和逻辑的重构。在 LightningModule 的子类 BasicTimeSeriesForecastingModule中实现有关推理(train/validation/step/predict)和数据处理(如 Scaler、前/后处理等)的部分功能,相当于将原框架中 RunnerModel的组合关系变成 BasicTimeSeriesForecastingModuleModel的继承关系,具体的训练过程(如早停、梯度裁剪、ckpt保存等)交由 lightning.Trainer 进行控制。
  • examples/arch.py:MLP 示例模型,主要修改了 __init__ 方法、将优化器的定义下放到模型代码中。
  • examples/lightning_config.yaml:lightning 支持的配置文件示例。
  • requirements.txt:增加了 lightning 相关依赖。
  • run.py:项目通用入口文件,模型/数据集的选择 、超参数的设置全部由具体配置文件、模型代码管理。

需要完成的后续工作

  • 适配 baseline
  • 适配测试代码
  • 更新文档
  • 移除依赖 easytorch 的旧版本框架代码
  • 进一步重构框架,使其更加符合 lightning 的风格
  • 其他的一些测试、适配以及 BUG 修复

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant