运行TensorFlow Object Detection验证脚本时出现deepmac_meta_arch导入错误
报错核心信息:
ImportError: cannot import name 'deepmac_meta_arch' from 'object_detection.meta_architectures'
该错误的本质是当前Python运行环境加载的TensorFlow Object Detection API库中不存在deepmac_meta_arch模块,具体产生原因如下:
- API版本与测试脚本版本不匹配:你运行的
model_builder_tf2_test.py来自新拉取的TensorFlow Models仓库代码,新版代码新增了对DeepMAC(深度掩膜注意力中心)架构的支持,而你本地Python环境中安装的Object Detection API是旧版本,对应安装包中未包含deepmac_meta_arch相关模块,触发导入失败。 - 源码更新后未重新安装API:拉取最新的Models仓库源码后,没有重新执行
research目录下的安装命令python setup.py install,导致系统site-packages目录中留存的仍是旧版本的API编译包,Python运行脚本时优先加载了旧版本包,而非当前目录下的最新源码文件。 - PYTHONPATH环境变量配置缺失:如果没有将本地Models仓库的
research和research/slim路径添加到系统PYTHONPATH环境变量中,Python不会优先读取当前仓库下的最新object_detection源码,会直接调用已安装到site-packages的旧版本包,也会触发该错误。 - TensorFlow版本不兼容:DeepMAC模块仅适配TensorFlow 2.5及以上版本,如果你的本地TensorFlow版本低于2.5,即便拉取了最新源码,安装过程中也会自动跳过该模块的编译安装,最终导致导入失败。
内容的提问来源于stack exchange,提问作者Victor Malichenko
相关产品推荐
相关产品推荐

