使用“for循环”多次训练模型会产生截然不同的结果

时间:2021-06-23 15:05:06

标签: for-loop deep-learning pytorch

在我的训练脚本中,我有一个函数“train”,它执行一定数量的 epoch 的模型训练,并且训练成功进行。损失逐渐减少,我获得了不错的验证集准确性。

现在,我想训练同一个模型 3 次。所以我基本上创建了一个“for循环”,它执行我的“train”函数 3 次。但是,我观察到前 2 次运行产生了不错的 val 集精度。然而,在第三次运行中,我的模型完全无法训练,训练损失几乎保持在非常高的值。我不明白为什么会发生这种情况,我认为这可能是由于 PyTorch 的随机种子或 cuda 内存分配造成的。

注意:在我的“train”函数中,我重新初始化了所有模型、优化器和调度器。在整个运行过程中唯一保持不变的是我的 Dataloader 类的“train_loader”实例。我没有使用任何手动种子,所以我确实希望我的 val 结果会有一些变化,但是模型在第三次运行时根本没有训练。

非常感谢!

0 个答案:

没有答案
相关问题