You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

YOLOv7 P6模型转MLModel后添加解码层的正确strides咨询

YOLOv7-e6e(P6模型)MLModel解码层的正确strides设置

核心问题原因

YOLOv7-e6e属于P6架构,有4个检测分支,你转换后的MLModel出现8个输出张量,是因为每个检测头被拆分为2个独立张量(通常是回归、分类分支拆分导致)。你的脚本逻辑按输出数量匹配strides,但仅设置了4个stride元素,若错误地以单输出对应单stride的方式匹配,就会触发索引越界错误。

正确strides设置

  1. 标准strides值:YOLOv7-e6e的默认strides为 [8, 16, 32, 64](对应输入尺寸640×640时,特征图尺寸分别为80×80、40×40、20×20、10×10)。如果你的训练输入尺寸不是640,按比例缩放即可(比如输入1280时,strides为 [16, 32, 64, 128])。
  2. 输出与strides的匹配逻辑:将每2个连续输出张量绑定到同一个stride元素,对应关系:
    • 输出0、1 → strides[0](8)
    • 输出2、3 → strides[1](16)
    • 输出4、5 → strides[2](32)
    • 输出6、7 → strides[3](64)

同步配套调整

  • featureMapDimensions:每个stride对应的特征图尺寸为 输入尺寸 / stride,输入640时设置为 [80, 40, 20, 10],同样按每2个输出对应一个尺寸。
  • anchors与anchorGrid:YOLOv7-e6e默认anchors为 [[12,16],[19,36],[40,28],[36,75],[76,55],[72,146],[142,110],[192,243],[459,401]],需确保anchorGrid按4个检测头的维度生成,每个头对应3个锚框。

验证修改

调整后运行脚本,确认每个检测分支的输出都能正确关联对应的stride与特征图尺寸,即可解决索引越界问题。

内容的提问来源于stack exchange,提问作者Ray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 17:31:05