首页IT科技mmdetection dataloader(mmdetection ValueError: need at least one array to concatenate解决方案)

mmdetection dataloader(mmdetection ValueError: need at least one array to concatenate解决方案)

时间2025-09-18 05:02:01分类IT科技浏览18421
导读:在mmdetection中有时候训练模型会出现ValueError: need at least one array to concatenate的错误,详情如下图所示。...

在mmdetection中有时候训练模型会出现ValueError: need at least one array to concatenate的错误                        ,详情如下图所示                        。

很多人都说是mmdet/dataset下coco.py或voc.py中CLASSES设置与数据集对应不上                                    ,博主不以为然                                    。因为在mmdetection2中            ,不需要到mmdet/dataset中修改CLASSES                  ,只需要在训练配置文件中中设置一下就行了            。config解释器会通过继承自动修改CLASSES的值                                    ,具体可见下图                  ,或参考mmdetection2的使用教程从数据处理                        、配置文件到训练与测试(支持coco数据和pascal_voc数据)_万里鹏程转瞬至的博客-CSDN博客_mmdetection2https://hpg123.blog.csdn.net/article/details/124617894

 只要配置文件中classes设置正确了            ,voc数据就不会出现上述的报错                  。

但是                                    ,coco数据集会因此数据转化时设置有误                        ,而导致出现上述错误                                    。博主的数据集只有shoot一个类别      ,在数据集转换时                                    ,通过下列方式在tools\dataset_converters\pascal_voc.py文件设置类别                  。【错误方式】

 然后生成的coco数据存在问题                              ,本来只有一个shoot类别的coco数据,结果出现了 20余个supercategory项目            。这就是导致报错的根源                                    。

在转换数据集时                              ,需要通过在tools\dataset_converters\pascal_voc.py文件按照以下标准以下设置修改自定义类别

 通过该方式生成的coco数据集才是严格正确的                                    ,其categories的格式如下图所示                        。如果是通过第三方项目生成的coco数据      ,则请检查categories内的数据与数据集的类别是否正常      。

 在修改coco数据集的错误后                        ,现在mmdetection可以正常训练数据了                                    。

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

展开全文READ MORE
seo网站优化工具大全图片(seo官网优化详细方法) js传递参数(js路由跳转的几种方式以及介绍)