首页IT科技test error training error(【已解决】ERROR:The testing results of the whole dataset is empty)

test error training error(【已解决】ERROR:The testing results of the whole dataset is empty)

时间2025-06-19 10:02:41分类IT科技浏览22724
导读:问题描述 使用MMdetection复现论文swin Transformer,显示错误:...

问题描述

使用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不合适

学习率是啥?

学习率是梯度下降多次迭代过程中          ,用来控制模型学习进度的超参数                。可以这么理解                ,学习率大就学的快(梯度下降块)                              ,学习率小就学得慢               ,但学习率并非越大越好           ,学习率过大                              ,容易造成梯度爆炸或者消失                              。

解决办法

MMdetection默认的学习率                    ,大多都是0.02      ,如果不刻意更改                               ,模型会使用这个学习率去训练                         ,swin Transformer没办法在lr=0.02条件下训练,将学习率更改为论文设定的0.0001                          ,模型就正常训练               。

在MMdetection中                              ,学习率的调整是在目录:configs/base/schedules/schedule_1x.py

文件中:

学习率调整后的正常的训练结果:

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
antd-vue table控制复选框(antdvvueupload自定义上传结合表单提交方式) 伪原创写文章软件(伪原创文案编辑——提升内容创作效率的秘密武器)