Yolov5Net报错【已解决】:System.IndexOutOfRangeException: ‘Index was outside the bounds of the array.

首先感谢作者让我们.NET玩家能应用上Yolov5/6这一深度学习网络。链接:Github:Yolov5-net
通常,我们需要检测我们自己训练的模型,根据YoloCocoP5Model或者YoloCocoP6Model修改字节的模型文件即可,非常方便。
网络上有很多数据集,其中流传最为广泛的是东北大学“热轧带钢表面缺陷数据集”。本文在处理这个数据集中遇到了这个异常:System.IndexOutOfRangeException: 'Index was outside the bounds of the array.
在其他数据集检测中也经常出现这个问题。这里记录一下我的一个解决方案:

异常情况出现的原因

在Model 文件中设置了错误的维度参数:
在这里插入图片描述
图中的Dimensions参数要根据实际情况修改,并且要完全正确,才不会出现“Index was outside the bounds of the array.”异常。

解决方案

解析使用的onnx文件

在这里插入图片描述
打开网站:onnx文件解析
找到最终的output,点击一下,右边出现具体的结构
在这里插入图片描述
我这里的结构是[1,25200,7]

查看报错位置的Output 数组结构

在这里插入图片描述
这里的output 长度是:277200

计算Dimensions参数

Dimensions = 277200 / 25200 = 11

修改Dimensions参数

在这里插入图片描述

Happy Ending

结语

由于github上也有人提出此问题:Github Issues58,本人也一并回答了,可前往了解。
也许有更好的解决方案,欢迎大家讨论,补充!

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值