热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mmdetection训练出现:IndexError:listindexoutofrange错误

mmdetection训练出现:IndexError:listindexoutofrange错误文章目录:1问题分析1.1尝试解决错误:第


mmdetection训练出现:IndexError: list index out of range 错误

文章目录:

  • 1 问题分析
    • 1.1 尝试解决错误:第一次
    • 1.2 尝试解决错误:第二次
  • 2 我的问题解决方式



我的环境:


  • Ubuntu18.04
  • TorchVision: 0.6.0
  • OpenCV: 4.2.0
  • MMCV: 0.5.5
  • MMDetection: 2.0.0+d9c8f14
  • MMDetection Compiler: GCC 7.5
  • MMDetection CUDA Compiler: 10.2

训练的模型是:Retinanet




1 问题分析

在使用mmdetection2.0框架训练目标检测模型时候,出现IndexError: list index out of range错误,具体内容如下图,首先从这个错误的类型我们可以看出是索引超过了列表的长度,导致IndexError错误
在这里插入图片描述


1.1 尝试解决错误:第一次

根据这个错误,很容易想到是否是类别写的不正确,于是去检查如下三个文件:


  • mmdetection/mmdet/datasets/voc.py:中的CLASSED变量对应的类别是否正确
  • mmdetection/mmdet/core/evaluation/class_names.py:voc_classes()函数返回的类别是否正确
  • mmdetection/configs/_base_/models/retinanet_r50_fpn.py:中num_classes对应的类别数是否正确

结果反复检查了好几遍,还是没有解决这个问题,当然如果你遇到这个问题,很可能就是因为类别写的不对,你一定要仔细、仔细、仔细检查


1.2 尝试解决错误:第二次

自己解决不了,于是就去逛github mmdetection的官网,然后乖乖查看issues,issues中好多说是类别的问题,还有一个人说是学习率太大导致的,我一脸迷惑,信以为真,就尝试了一下(参考)



ONE YEARS LATER



一顿尝试,最终还是不行,错误重现!!!


2 我的问题解决方式

我最开始编译的mmdetection环境路径为:


/home/shl/shl/mmdetection


但是我后面训练自己的另外一个数据集的时候,是直接把这个编译好的mmdetection拷贝一份出来,会出一定的问题,比如:


cp -r mmdetection mmdetection_clothes


然后在/home/shl/shl/mmdetection_clothes中修改类别,但是最终还是会去:/home/shl/shl/mmdetection/mmdet下面读取类别信息,用pip list 可以查看到mmdetection的路径

(mmdetection) shl@zfcv:~/shl/mmdetection$ pip list
Package Version Location
---------------------- ------------------- -------------------------
absl-py 0.9.0
addict 2.2.1
cachetools 4.1.0
certifi 2020.4.5.1
chardet 3.0.4
click 7.1.2
cycler 0.10.0
Cython 0.29.19
Flask 1.1.2
future 0.18.2
google-auth 1.17.2
google-auth-oauthlib 0.4.1
grpcio 1.29.0
idna 2.9
importlib-metadata 1.6.1
itsdangerous 1.1.0
Jinja2 2.11.2
kiwisolver 1.2.0
Markdown 3.2.2
MarkupSafe 1.1.1
matplotlib 3.2.1
mmcv 0.5.5
mmdet 2.0.0+d9c8f14 /home/shl/shl/mmdetection # 这里可以看到,mmdetection_clothes训练时还是在这里调用mmdet下的类别相关信息
numpy 1.18.4
oauthlib 3.1.0
opencv-python 4.2.0.34
pandas 1.0.4
Pillow 7.1.2
pip 20.0.2
protobuf 3.12.2
pyasn1 0.4.8
pyasn1-modules 0.2.8
pycocotools 2.0
pyparsing 2.4.7
python-dateutil 2.8.1
pytz 2020.1
PyYAML 5.3.1
requests 2.23.0
requests-oauthlib 1.3.0
rsa 4.6
scipy 1.4.1
seaborn 0.10.1
setuptools 46.4.0.post20200518
six 1.15.0
tensorboard 2.2.2
tensorboard-plugin-wit 1.6.0.post3
terminaltables 3.1.0
torch 1.5.0
torchvision 0.6.0
tqdm 4.46.1
urllib3 1.25.9
Werkzeug 1.0.1
wheel 0.34.2
yapf 0.30.0
zipp 3.1.0
(mmdetection) shl@zfcv:~/shl/mmdetection$

所以最后的解决方式,在/home/shl/shl/mmdtection这个原始的路径下修改类别,然后训练,不要拷贝出来一份!我就是想训练多个数据集才这样干的,至于后面有没有什么解决方式,我再尝试!


推荐阅读
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文将详细介绍如何注册码云账号、配置SSH公钥、安装必要的开发工具,并逐步讲解如何下载、编译 HarmonyOS 2.0 源码。通过本文,您将能够顺利完成 HarmonyOS 2.0 的环境搭建和源码编译。 ... [详细]
  • CSS3 @font-face 字体应用技术解析与实践
    在Web前端开发中,HTML教程和CSS3的结合使得网页设计更加多样化。长期以来,Web设计师受限于“web-safe”字体的选择。然而,CSS3中的`@font-face`规则允许从服务器端加载自定义字体,极大地丰富了网页的视觉效果。通过这一技术,设计师可以自由选择和使用各种字体,提升用户体验和页面美观度。本文将深入解析`@font-face`的实现原理,并提供实际应用案例,帮助开发者更好地掌握这一强大工具。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 在探讨 MySQL 正则表达式 REGEXP 的功能与应用之前,我们先通过一个小实验来对比 REGEXP 和 LIKE 的性能。通过具体的代码示例,我们将评估这两种查询方式的效率,以确定 REGEXP 是否值得深入研究。实验结果将为后续的详细解析提供基础。 ... [详细]
  • Netty框架中运用Protobuf实现高效通信协议
    在Netty框架中,通过引入Protobuf来实现高效的通信协议。为了使用Protobuf,需要先准备好环境,包括下载并安装Protobuf的代码生成器`protoc`以及相应的源码包。具体资源可从官方下载页面获取,确保版本兼容性以充分发挥其性能优势。此外,配置好开发环境后,可以通过定义`.proto`文件来自动生成Java类,从而简化数据序列化和反序列化的操作,提高通信效率。 ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 本文详细介绍了在Linux系统上编译安装MySQL 5.5源码的步骤。首先,通过Yum安装必要的依赖软件包,如GCC、GCC-C++等,确保编译环境的完备。接着,下载并解压MySQL 5.5的源码包,配置编译选项,进行编译和安装。最后,完成安装后,进行基本的配置和启动测试,确保MySQL服务正常运行。 ... [详细]
  • 求助:在CentOS 5.8系统上安装PECL扩展遇到问题
    在 CentOS 5.8 系统上尝试安装 APC 扩展时遇到了问题,具体表现为 PECL 工具无法正常工作。为了确保顺利安装,需要解决 PECL 的相关依赖和配置问题。建议检查 PHP 和 PECL 的版本兼容性,并确保所有必要的库和开发工具已正确安装。此外,可以尝试手动下载 APC 扩展的源代码并进行编译安装,以绕过 PECL 工具的限制。 ... [详细]
  • 在Ubuntu系统中配置Python环境变量是确保项目顺利运行的关键步骤。本文介绍了如何将Windows上的Django项目迁移到Ubuntu,并解决因虚拟环境导致的模块缺失问题。通过详细的操作指南,帮助读者正确配置虚拟环境,确保所有第三方库都能被正确识别和使用。此外,还提供了一些实用的技巧,如如何检查环境变量配置是否正确,以及如何在多个虚拟环境之间切换。 ... [详细]
  • 在腾讯云服务器上部署Nginx的详细指南中,首先需要确保安装必要的依赖包。如果这些依赖包已安装,可直接跳过此步骤。具体命令包括 `yum -y install gcc gcc-c++ wget net-tools pcre-devel zlib-devel`。接下来,本文将详细介绍如何下载、编译和配置Nginx,以确保其在腾讯云服务器上顺利运行。此外,还将提供一些优化建议,帮助用户提升Nginx的性能和安全性。 ... [详细]
  • 在64位Linux系统上编译GCC时,可能会遇到一个错误,即在构建共享库过程中,`.libs/alloc.o` 文件中的重定位 `R_X86_64_32` 无法应用于 `.rodata.str1.8` 段。这一问题通常与目标文件的地址空间限制有关,需要通过调整编译选项或修改源代码来解决。具体来说,可以尝试使用 `-fPIC` 选项以生成位置无关代码,或者检查相关对象文件的链接方式。 ... [详细]
  • 在 CentOS 6.6 系统中搭建 MONO 和 Jexus 以支持 ASP.NET 及 MVC 应用的运行环境配置指南
    本文提供了在 CentOS 6.6 系统上配置 MONO 和 Jexus 以支持 ASP.NET 及 MVC 应用的详细步骤。首先,确保本机环境为 CentOS 6.6,并使用阿里云的 YUM 源来安装必要的软件包,包括 gcc、gcc-c++、bison、pkgconfig 和 glib2-devel。这些软件包是构建和运行 MONO 环境的基础,确保系统能够顺利支持 ASP.NET 和 MVC 应用的部署和运行。 ... [详细]
author-avatar
707282400_de0c8b
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有