实现mRCNN时遇Keras 2.0环境下‘No module named keras.engine’错误求助
解决Mask RCNN搭配Keras 2.0时
keras.engine模块找不到的问题 问题根源
你使用的Mask RCNN 2.1版本是基于旧版Keras API编写的,而Keras 2.x版本调整了keras.engine下的模块结构,导致导入路径不匹配,触发ModuleNotFoundError。
可行解决方案
1. 安装兼容版本的Keras和TensorFlow
Mask RCNN 2.1对Keras 2.2.5及以下版本适配性更好,同时需要搭配TensorFlow 1.x版本(推荐1.15.0),执行以下命令安装:
pip install keras==2.2.5 tensorflow==1.15.0
2. 修改Mask RCNN源码的导入语句
如果不想降级依赖,可以手动修改mrcnn/model.py中第23行的导入代码:
- 找到原导入
from keras.engine import ...的语句 - 根据导入的具体模块替换为Keras 2.x的正确路径,例如:
# 若导入Layer from keras.engine.base_layer import Layer # 若导入Input from keras.engine.input_layer import Input
3. 使用适配新版Keras的Mask RCNN修改版本
可以寻找社区维护的、适配Keras 2.x的Mask RCNN分支,替换当前安装的mask_rcnn包。
内容的提问来源于stack exchange,提问作者warren briggs
相关产品推荐
相关产品推荐

