BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #38484同步于 2022/6/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖

炼丹玄学

xmy980916
2022/6/29镜像同步18 回复
发现一个比较有意思的现象,用pytorch lighting写的代码,假设训练50个epoch, 直接从0到50一口气训完指标大概80的样子。 如果中间多次中断并加载参数重新训最后能涨不少比如82左右。 比如说训到10epoch,训练中断了,加载参数恢复训练接着训会发现第11个epoch的指标比一口气训完的第11个epoch的指标高不少。并且多次这样都是有增益的… 然后有点怀疑自己代码的问题,就用pytorch lighting官方的mnist代码测了一下,发现也是这样的… 初步定位了一下问题,如果恢复训练的时候用相同的随机数就不会带来增益,换一个随机数种子就会带来增益,看着像是多次恢复训练有些地方被随机初始化了,并且这样的随机能带来稳定的性能提升。感觉像是pytorch lighting埋的'坑'。 不知道uu们有没有碰到类似的情况?或者有没有什么见解[bbsemoji55358,56784] 之前发在悄悄话了,好像会被清帖,所以贴过来了~ 随机数这个问题还挺奇怪的我想具体定位到重启训练是哪个部分随机了…但是好像有点困难
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
c654528593机器人#1 · 2022/6/29
相当于间接的调整学习率了?
xmy980916机器人#2 · 2022/6/29
恢复训练是承接断点的学习率接着训的 【 在 c654528593 的大作中提到: 】 : 相当于间接的调整学习率了?
c654528593机器人#3 · 2022/6/29
固定随机种子? 【 在 xmy980916 的大作中提到: 】 : 恢复训练是承接断点的学习率接着训的
lt1103725556机器人#4 · 2022/6/30
一般来说都会规定随机种子的吧。。出现这种现象或许你可以去研究研究,在模型中自适应加入随机参数来提点就不用像你现在这样手动停了
xmy980916机器人#5 · 2022/6/30
现在分析了一个可能,目前看损失的曲线有一定的过拟合的情况,考虑模型有dropout,droppath层,多次恢复训练相当于让不同的神经元失活,鲁棒性更强了一定程度缓解了过拟合所以效果更好了 【 在 lt1103725556 的大作中提到: 】 : 一般来说都会规定随机种子的吧。。出现这种现象或许你可以去研究研究,在模型中自适应加入随机参数来提点就不用像你现在这样手动停了
zh19951213机器人#6 · 2022/6/30
dropout不是本来就是随机的么,你不重新训练他到下一轮也是让不同的神经元失活啊 【 在 xmy980916 的大作中提到: 】 : 现在分析了一个可能,目前看损失的曲线有一定的过拟合的情况,考虑模型有dropout,droppath层,多次恢复训练相当于让不同的神经元失活,鲁棒性更强了一定程度缓解了过拟合所以效果更好了
zh19951213机器人#7 · 2022/6/30
按理来说接着训练模型里的参数是不会随机初始化的吧,是不是训练数据那块顺序打乱了造成的影响,要是训练好的模型里还有随机初始化那还挺可怕的
xmy980916机器人#8 · 2022/6/30
这样子啊,那我之前还理解错了。数据这块我查过了,不存在随机的地方。做了个小实验,发现固定了随机种子,但是dropout的输出还是不一样,所以之前怀疑是dropout层的问题。 【 在 zh19951213 的大作中提到: 】 : dropout不是本来就是随机的么,你不重新训练他到下一轮也是让不同的神经元失活啊
zoutj21机器人#9 · 2022/6/30
感觉是数据被重新排列了带来的效果 另外一种可能是停止训练再加载模型时有些数据被压缩/重新读取了(比如说 GPU-CPU)可能带来的一些误差