You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
在trainer.py的fit函数的epoch循环中添加如下代码以对齐train data的批次和epoch_idx(可选) for epoch_idx in range(self.start_epoch, self.epochs): for i in range(self.start_epoch): # skip train_data epochs for batch in train_data: # skip train_data batchs pass
重新启动训练,观察log输出的评估结果。
预期
希望可以修复上述问题,并提供完整的resume逻辑,例如指定checkpoint文件以提示是否调用resume函数。
另外我注意到Time and Memory Costs中没有DiffRec等新模型的条目,希望后续可以添加以供参考。
实验环境:
操作系统:Linux
RecBole 版本 0.1.2
Python 版本 3.8
PyTorch 版本 2.0
Cuda 版本 11.8
The text was updated successfully, but these errors were encountered:
描述这个 bug
当保存checkpoint并中断训练后,使用resume函数加载checkpoint并重启训练将会损害最终性能,例如LDiffRec的ndcg@10将由0.045降0.028。
导致这一问题的原因目前已发现两点,首先是缺乏恢复训练的逻辑,重启训练将导致train data从第一批次重新开始,当我们将train data与epoch对齐解决了这一点后,又发现中断重启会导致LDiffRec的encoder部分参数更新出错,继而得到更高的loss并造成最终的性能瓶颈。
如何复现
复现这个 bug 的步骤:
for epoch_idx in range(self.start_epoch, self.epochs): for i in range(self.start_epoch): # skip train_data epochs for batch in train_data: # skip train_data batchs pass
预期
希望可以修复上述问题,并提供完整的resume逻辑,例如指定checkpoint文件以提示是否调用resume函数。
另外我注意到Time and Memory Costs中没有DiffRec等新模型的条目,希望后续可以添加以供参考。
实验环境:
The text was updated successfully, but these errors were encountered: