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

Yolov3-tiny训练报convolutional层与yolo层参数不匹配错误求助

问题解决方案

报错含义:[convolutional]层配置的filters参数与[yolo]层的classes或mask参数不匹配。

你当前的filters参数计算是正确的(单类别场景下(1+5)*3=18),报错根源是所有size=1的卷积层pad参数设置错误:卷积核大小为1时不需要额外填充,pad设为1会改变特征图尺寸,导致yolo层输入维度不匹配。

具体修改步骤

修改cfg文件中以下4个卷积层的pad参数为0即可:

  1. 第一个yolo层前的1x1卷积
# 修改前
[convolutional]
batch_normalize=1
filters=256
size=1
stride=1
pad=1
activation=leaky

# 修改后
[convolutional]
batch_normalize=1
filters=256
size=1
stride=1
pad=0
activation=leaky
  1. 第一个yolo层正上方的输出卷积层
# 修改前
[convolutional]
size=1
stride=1
pad=1
filters=18
activation=linear

# 修改后
[convolutional]
size=1
stride=1
pad=0
filters=18
activation=linear
  1. route层后的1x1卷积
# 修改前
[convolutional]
batch_normalize=1
filters=128
size=1
stride=1
pad=1
activation=leaky

# 修改后
[convolutional]
batch_normalize=1
filters=128
size=1
stride=1
pad=0
activation=leaky
  1. 第二个yolo层正上方的输出卷积层
# 修改前
[convolutional]
size=1
stride=1
pad=1
filters=18
activation=linear

# 修改后
[convolutional]
size=1
stride=1
pad=0
filters=18
activation=linear

后续调整规则

如果后续修改训练类别数,直接按公式 filters = (类别数 + 5) * 3 修改两个输出卷积层的filters值即可,其他参数不用变动。如果修改配置后仍报错,确认你加载的是yolov3-tiny对应的预训练权重,不要误用yolov3完整版的权重。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 09:57:04