-
Notifications
You must be signed in to change notification settings - Fork 203
Open
Labels
bugSomething isn't workingSomething isn't workingneeds-triagedfor issues raised to be triagedfor issues raised to be triaged
Description
Is there an existing issue / discussion for this? | 是否已有关于该错误的issue或讨论?
- I have searched the existing issues / discussions | 我已经搜索过已有的issues和讨论
Is there an existing answer for this in tutorial? | 该问题是否在教程中有解答?
- I have searched tutorial | 我已经搜索过tutorial
Current Behavior | 当前行为
场景:针对配置了 EarlyStopping 的训练代码,执行2次。假设 patience=10、num_epochs=100。
行为:
- 第一次执行:代码在中间某个epoch触发早停结束训练,如第25个epoch。(符合预期)
- 第二次执行-模型加载:由于cfg.md5没变,因此会使用同一个ckpt目录并默认读取该目录下的ckpt恢复训练。(符合预期)
- 第二次执行-开始训练:在第25个epoch基础上,再次训练,直至达到 patience 或者 num_epochs 的结束条件。(可能难以被新手用户预期)
Expected Behavior | 期望行为
假设同一套cfg配置,执行过程以及结果应该是确定的、或者可被用户感知和预期的,例如如下一种:
- 与 num_epochs 保持一致:恢复训练时,检测到之前模型已经由于早停结束,行为应该和恢复一个已经达到 num_epochs 条件的 ckpt 一致
当前如果不配置早停,多次执行同一个训练脚本(例如复现方法中代码注释掉早停),只有第一次会正常训练、后续会跳过训练只进行测试。
- 增加进一步的参数控制、或者补充一些文档和运行时的warning说明
Environment | 运行环境
- BasicTS: 1.1.0BasicTS logs | BasicTS日志
No response
Steps To Reproduce | 复现方法
重复执行如下代码
# train.py
from basicts import BasicTSLauncher
from basicts.configs import BasicTSForecastingConfig
from basicts.models.DLinear import DLinear, DLinearConfig
from basicts.runners.callback import EarlyStopping
def main():
model_config = DLinearConfig(input_len=12, output_len=12)
BasicTSLauncher.launch_training(BasicTSForecastingConfig(
model=DLinear,
model_config=model_config,
dataset_name="PEMS03",
callbacks=[EarlyStopping()],
input_len=12,
output_len=12,
gpus="0"
))
if __name__ == "__main__":
main()Anything else? | 备注
感谢开发者~
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingneeds-triagedfor issues raised to be triagedfor issues raised to be triaged