Object Detection API与TensorFlow、Keras兼容性问题及报错解决求助
解决方案
针对Keras模块找不到的问题
- 不要手动修改
resnet_v1.py的导入路径,先彻底清理独立Keras:- 执行
pip uninstall keras -y确保完全移除独立版本 - 在Python交互环境运行
import tensorflow.keras,验证TF2.3内置的Keras是否可正常导入 - 检查教程代码中的导入逻辑:将所有
import keras或import tf_keras替换为from tensorflow import keras,TF2.x版本的Object Detection API默认适配内置Keras
- 执行
针对AttributeError: tensorflow._api.v2.experimental has no attribute 'register_filesystem_plugin'的问题
该错误源于TF2.3的tf.experimental模块不含register_filesystem_plugin方法,此方法是TF2.6+版本新增的。解决步骤:
- 排查代码中调用该方法的位置,确认是来自cocoapi还是Object Detection API
- 严格安装教程指定的cocoapi版本,避免使用依赖高版本TF的新版cocoapi
- 若为Object Detection API代码问题:
- 直接注释掉调用
tf.experimental.register_filesystem_plugin的代码行,TF2.3无需该操作 - 确保Object Detection API版本与TF2.3兼容(对应2.3.x版本,不要用更高版本API)
- 直接注释掉调用
- 重新锁定依赖版本:执行
pip install tensorflow==2.3.0确认TF版本准确,再重新安装教程指定的所有依赖
额外环境隔离建议
- 用虚拟环境避免全局包冲突:
python3.7 -m venv table_det_env source table_det_env/bin/activate # Linux/Mac系统 # Windows系统执行:table_det_env\Scripts\activate pip install tensorflow==2.3.0 # 再安装教程指定的cocoapi及其他依赖 - 运行测试脚本前,添加Object Detection API路径到环境变量:
export PYTHONPATH=$PYTHONPATH:/path/to/your/models/research:/path/to/your/models/research/slim
内容的提问来源于stack exchange,提问作者Moe_blg
相关产品推荐
相关产品推荐

