You need to enable JavaScript to run this app. PixelLib自定义实例分割训练时出现input_image_meta形状不匹配报错
优惠活动
大模型
产品
解决方案
定价
更多

PixelLib自定义实例分割训练时出现input_image_meta形状不匹配报错

报错原因分析

本次报错的核心是Mask R-CNN输入层期望的input_image_meta维度(15)与数据集生成的实际维度(14)不一致,维度计算和模型总类数(含背景)直接绑定,同时伴随验证集为空的配置错误。

排查与解决步骤

1. 修正数据集目录结构

PixelLib的load_dataset方法强制要求数据集根目录下必须包含train和val两个子目录,每个子目录下再分别放置images和annotations文件夹,正确结构如下:

Dataset/
├── train/                # 训练集目录
│   ├── images/           # 训练图片存放路径
│   │   ├── img1.jpg
│   │   └── ...
│   └── annotations/      # 训练集标注文件(json格式,与图片同名)
│       ├── img1.json
│       └── ...
└── val/                  # 验证集目录(必须存在,可放少量样本)
    ├── images/           # 验证图片存放路径
    │   ├── val_img1.jpg
    │   └── ...
    └── annotations/      # 验证集标注文件
        ├── val_img1.json
        └── ...
  • 从现有训练集中拆分至少3-5张图片到val目录,解决Validate 0 images问题,同时避免类数识别异常。
  • 确认所有标注json文件的label字段类名完全统一,无拼写错误、多余类名。

2. 修正num_classes参数配置

modelConfig中的num_classes参数仅统计需要识别的自定义类数量,不包含背景类:

  • 若仅需识别1类目标(如道路破损),设置num_classes=1,此时总类数为1+1(背景)=2,对应生成的input_image_meta维度为14,与实际匹配。
  • 若需识别2类自定义目标,保持num_classes=2,此时总类数为2+1(背景)=3,对应生成的input_image_meta维度为15,匹配模型期望。
    当前配置大概率存在标注仅含1类自定义目标,但错误设置num_classes=2的问题,导致模型按总类数3计算meta维度为15,实际数据集仅识别到总类数2,生成的meta维度为14,触发报错。

3. 修正预训练模型加载逻辑

加载mask_rcnn_coco.h5预训练权重时,添加exact=False参数,跳过权重层的严格维度校验,避免类数不匹配导致的加载异常:

train_maskrcnn.load_pretrained_model("/content/drive/MyDrive/AI ML Trainee/Damage Detection/pix/mask_rcnn_coco.h5", exact=False)

同时确认network_backbone参数与预训练权重匹配,你当前使用的resnet101与官方COCO权重兼容,无需调整。

4. 最小变量测试

先降低训练配置到最低值,排除其他变量干扰:

  • 将batch_size调整为2,num_epochs调整为1,augmentation设为False,运行测试代码:
    train_maskrcnn.modelConfig(network_backbone = "resnet101", num_classes= 1, batch_size = 2)
    train_maskrcnn.load_pretrained_model("/content/drive/MyDrive/AI ML Trainee/Damage Detection/pix/mask_rcnn_coco.h5", exact=False)
    train_maskrcnn.load_dataset("/content/drive/MyDrive/AI ML Trainee/Damage Detection/pix/Dataset")
    train_maskrcnn.train_model(num_epochs = 1, augmentation=False,  path_trained_models = "mask_rcnn_models")
    

测试运行正常后,再逐步调高epoch数、batch_size,开启数据增强。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 11:57:02