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

Colab中Matterport Mask-RCNN与TensorFlow兼容问题求助

适配TensorFlow 2.x的Mask-RCNN解决方案(Colab环境+自定义COCO类)

问题背景

在Colab的Jupyter Notebook中运行Mask-RCNN,克隆官方仓库:

!git clone https://github.com/matterport/Mask_RCNN.git

手动修改model.py中的KE.Layer为KE.base_layer.Layer后,仍出现如下报错:

TypeError: Could not build a TypeSpec for KerasTensor(type_spec=TensorSpec(shape=(None, None, 4), dtype=tf.float32, name=None), name='tf.math.truediv/truediv:0', description="created by layer 'tf.math.truediv'") of unsupported type <class 'keras.engine.keras_tensor.KerasTensor'>.

确认是TensorFlow版本兼容问题,后续陷入依赖循环:

  • 仓库自带的requirements.txt因pip的parse_requirements方法兼容问题无法正常安装依赖
  • 尝试安装TensorFlow 1.14.0时,虽可通过指定whl包安装,但无法将该配置写入requirements.txt,且会与现有依赖(如kapre 0.3.7要求tensorflow>=2.0.0)冲突

需求:寻找适配TensorFlow 2.x环境的Mask-RCNN分支,需支持自定义COCO格式类别,且可在Colab正常运行。

解决方案

1. 选用TF2.x兼容的Mask-RCNN分支

直接使用社区维护的、已完成TensorFlow 2.x适配的Mask-RCNN衍生分支,这类分支已经修复了KerasTensor类型相关的兼容报错,无需手动修改model.py中的层引用代码。

  • 克隆分支后,直接执行!pip install -r requirements.txt即可安装适配的依赖,不会出现parse_requirements的兼容问题

2. 配置自定义COCO格式类别

这类兼容分支大多保留了原版的COCO数据集接口,只需简单调整即可支持自定义类别:

  • 准备好符合COCO格式的标注文件(annotations.json)和对应图片数据集
  • 修改分支中的coco.py(或对应数据集配置文件),在class_names列表中添加你的自定义类别名称,同时将NUM_CLASSES参数设置为「自定义类别数量 + 1」(+1是因为要包含背景类)
  • 在训练脚本中指定你的数据集路径和标注文件路径,即可启动训练

3. Colab环境避坑指南

  • 先卸载现有TensorFlow版本:!pip uninstall tensorflow -y,再安装分支要求的TF2.x版本(如2.8.x或2.10.x,具体以分支的requirements.txt为准)
  • 安装依赖时加上--upgrade参数,避免版本冲突:!pip install -r requirements.txt --upgrade
  • 如果遇到kapre等依赖冲突,可单独安装兼容版本并跳过依赖检查:!pip install kapre==0.3.7 --no-deps(前提是分支代码不依赖kapre的TF2专属特性)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 21:35:28