使用MMdetection复现论文swin Transformer,体现错误:ERROR:The testing results of the whole dataset is empty,与此同时,各项评价指标如AP,AR效果趋于零,F1值酿成-1,loss与grad_norm爆炸增长,详细情况如下图: 图1:图2: 图3:
题目分析
看到报错的第一眼,猜测大概是数据集的题目,以是查抄了数据集的路径,然后查抄了数据集内里是否有图片,但经过一番验证,清除了这种大概性。如果数据集自己有题目,代码一开始就无法运行起来,由于mmdet肯定会报错,而且报错内容是:找不到数据集或者说找不到某张图片。
再仔细观察报错:ERROR:The testing results of the whole dataset is empty,拿不到测试效果,连合爆炸的loss与grad_morm,我有来由怀疑是梯度爆炸或者梯度消散所导致的。有了这个猜测,我转头审视自己的代码,最有大概导致梯度爆炸的超参数就是学习率lr,是不是我自己设置的学习率lr不符合?
学习率是啥?
学习率是梯度下降多次迭代过程中,用来控制模子学习进度的超参数。可以这么明确,学习率大就学的快(梯度下降块),学习率小就学得慢,但学习率并非越大越好,学习率过大,轻易造成梯度爆炸或者消散。
办理办法