TFOD课程报错ModuleNotFoundError: No module named 'tensorflow.compat'
解决
ModuleNotFoundError: No module named 'tensorflow.compat'问题 1. 验证Anaconda环境的TensorFlow完整性
- 激活你的目标Anaconda环境(替换为你的环境名):
conda activate your-tfod-env - 在Python交互环境中执行以下代码,确认TensorFlow及compat模块可正常调用:
若能正常输出版本号和模块信息,说明环境本身无问题,问题出在脚本运行的环境关联上。import tensorflow as tf print(tf.__version__) print(tf.compat.v1)
2. 确保Jupyter绑定正确的Anaconda环境
- 激活环境后,安装ipykernel并将环境注册到Jupyter:
conda install ipykernel python -m ipykernel install --user --name=your-tfod-env - 重启Jupyter Notebook,在顶部菜单栏的「Kernel」→「Change Kernel」中选择注册的
your-tfod-env环境,再重新运行测试脚本。
3. 修改测试脚本的导入逻辑
若环境验证正常但报错依旧,可修改model_builder_tf2_test.py第21行的导入语句:
原代码:
import tensorflow.compat.v1 as tf
替换为:
import tensorflow as tf tf.compat.v1.disable_eager_execution()
TensorFlow 2.x默认启用Eager Execution,该测试脚本依赖旧的Graph执行模式,此修改可实现兼容。
4. 适配教程的TensorFlow版本(可选)
若以上方法均无效,可降级TensorFlow至教程使用的版本(如2.10.0):
pip install tensorflow==2.10.0
降级后需重新安装TensorFlow Object Detection API的相关依赖包。
内容的提问来源于stack exchange,提问作者Naba
相关产品推荐
相关产品推荐

