机器学习PAI 我epoch设置了k,然后训练的时候 还能到epoch>k的情况?每个 save_summary_steps 这个日志好像把这个也打成epoch了
机器学习PAI 我epoch设置了k,然后训练的时候 还能到epoch>k的情况?[阿里云机器学习PAI]
「点点赞赏,手留余香」
还没有人赞赏,快来当第一个赞赏的人吧!
机器学习PAI 我epoch设置了k,然后训练的时候 还能到epoch>k的情况?每个 save_summary_steps 这个日志好像把这个也打成epoch了
在机器学习的训练过程中,”epoch”和”iteration”是两个不同的概念。”epoch”是指整个数据集被完整地遍历过一次,而”iteration”是指在单个epoch内模型的训练次数。
在你的问题中,你设置的”epoch”可能是指的总的训练次数,而”save_summary_steps”是在每个iteration结束时保存训练结果的频率。所以,即使你在配置文件中设置了”epoch”为k,但是在每个epoch中可能会有多于k个iteration,因此在训练过程中可能会出现”epoch”大于k的情况。
如果你想要在每个epoch结束时保存模型,你可以设置”save_checkpoints_steps”为0,这样模型就会在每个epoch结束时自动保存。同时,你也可以设置”save_summary_steps”为一个较大的值,比如1000,这样模型就会在每个iteration结束时保存一部分训练结果,但是不改变总的训练次数。
在 PAI-DSW 中,当 epoch 设置为 k 时,模型最多只会训练 k 次。这表示每个样本最多只会遍历整个训练数据集 k 次。
但是,对于一些算法,可能存在额外的训练周期,例如多卡训练。多卡训练时,每轮训练周期都称为一次 epoch。例如,在分布式训练中,当训练完成一轮后,会进行多个 epoch。
如果设置了
save_summary_steps
参数,PAI-DSW 会每隔一定步数保存模型和摘要信息。例如,如果save_summary_steps=1000
,那么在每轮训练周期中,会每隔 1000 步保存模型和摘要信息。这有助于观察模型性能,并了解模型收敛过程。因此,即使 epoch 设置为 k,也可能看到大于 k 的训练轮次。但是,
save_summary_steps
不会影响模型训练的整体轮次,而是每隔一定步数保存摘要信息。