Machine learning FastAI lrfind()方法不使用’;我不能正常工作

Machine learning FastAI lrfind()方法不使用’;我不能正常工作,machine-learning,pytorch,fast-ai,Machine Learning,Pytorch,Fast Ai,更新1 我更新了我的lr,根据“你想从那个点返回10倍,不管坡度如何。”并将其设置为 max_lr=-slice(1e-3,1e-2) 这是我得到的 情节呢 这是什么意思 正如你在第二张图中看到的 从1e-08开始,损失非常好,但我从未将lr设置为1e-08,为什么我会看到这个 损失在1e-07和1e-04之间上下波动,最终当lr在4e-05左右返回时,损失飙升至接近0.05。这是什么意思?过度装修?为什么最初当学习率接近相同值(4e-05)时,损失看起来还可以 从批量处理/损失中,我可以看

更新1

我更新了我的lr,根据“你想从那个点返回10倍,不管坡度如何。”并将其设置为 max_lr=-slice(1e-3,1e-2)

这是我得到的

情节呢

这是什么意思

正如你在第二张图中看到的

  • 从1e-08开始,损失非常好,但我从未将lr设置为1e-08,为什么我会看到这个

  • 损失在1e-07和1e-04之间上下波动,最终当lr在4e-05左右返回时,损失飙升至接近0.05。这是什么意思?过度装修?为什么最初当学习率接近相同值(4e-05)时,损失看起来还可以

  • 从批量处理/损失中,我可以看到列车损失和有效损失一起进行,看起来非常好。这意味着模特训练得很好?如果它受过良好的训练,为什么会在图2的末尾投篮

  • 我已经遵循了选择正确lr的规则,为什么它不起作用我是否可以断定lr_find()无法正常工作?


  • 这是我的lr_find()图

    然后根据它的图表,我选择了最陡的斜坡段:1e-2到1e-1作为我的lr

    代码如下:

    learn.fit_one_cycle(20, max_lr=slice(1e-2,1e-1))
    
    但这是我在训练中得到的

    这里是学习的情节

    learn.recorder.plot_lr()
    learn.recorder.plot()
    learn.recorder.plot_losses()
    

    正如你所看到的,有效损失周期性地恶化。所以我的结论是lr_find()方法不能正常工作

    我如何验证它

    如果你想看到整个代码,在这里;唯一的区别是我使用
    来_fp16()

    learn=cnn\u learner(数据,models.resnet50,metrics=error\u rate)。to\u fp16()


    您是否尝试过不同的低学习率(例如:1e-5和1e-3)。我的假设是,您使用的学习率很高,导致错误平面出现跳跃。谢谢@AhmadBaracat我已经降低了lr,请查看我的更新1,它包含了所有详细信息。