【已解决】ERROR:The testing results of the whole dataset is empty

这篇具有很好参考价值的文章主要介绍了【已解决】ERROR:The testing results of the whole dataset is empty。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

使用MMdetection复现论文swin Transformer,显示错误:ERROR:The testing results of the whole dataset is empty,与此同时,各项评价指标如AP,AR结果趋于零,F1值变成-1,loss与grad_norm爆炸增加,具体情形如下图:
图1the testing results of the whole dataset is empty.,OpenMMLab,深度学习,人工智能图2:
the testing results of the whole dataset is empty.,OpenMMLab,深度学习,人工智能
图3:the testing results of the whole dataset is empty.,OpenMMLab,深度学习,人工智能

问题分析

看到报错的第一眼,猜测可能是数据集的问题,所以检查了数据集的路径,然后检查了数据集里面是否有图片,但经过一番验证,排除了这种可能性。如果数据集本身有问题,代码一开始就无法运行起来,因为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文件中:
the testing results of the whole dataset is empty.,OpenMMLab,深度学习,人工智能
学习率调整后的正常的训练结果:
the testing results of the whole dataset is empty.,OpenMMLab,深度学习,人工智能文章来源地址https://www.toymoban.com/news/detail-810708.html

到了这里,关于【已解决】ERROR:The testing results of the whole dataset is empty的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包