首页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-05-01 05:39:13分类IT科技浏览20292
导读:问题描述 使用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
dyservice.exe是什么(gwsystemservice.exe是什么进程 有什么作用 gwsystemservice进程查询) 网络服务器是指什么意思(服务器:网络公司的核心基石)