TensorFlow Docker运行object_detection测试undefined symbol报错求助
问题解答
普通硬件运行TensorFlow Docker的可行性
普通硬件完全可以运行TensorFlow Docker,只要你的VPS CPU属于x86_64/arm64架构、可用内存不低于2GB,就可以正常运行CPU版TensorFlow Docker容器,无需独立GPU即可完成模型测试、训练、推理等基础操作。
报错解决方案
该报错的核心原因是容器内存在两个冲突的TensorFlow版本:Docker镜像内置的TensorFlow安装在系统路径/usr/local/lib/python3.6/dist-packages下,你后续操作又在用户目录/home/tensorflow/.local/lib/python3.6/site-packages下通过pip安装了另一个版本的TensorFlow,导入库时两个版本的动态链接库调用混乱,触发了符号未定义错误。
按以下步骤操作即可解决:
- 进入容器后先完全卸载用户目录下的TensorFlow相关包:
pip uninstall -y tensorflow tensorflow-cpu tensorflow-io
不要添加--user参数,确保.local路径下的TensorFlow安装包被完全清除
- 验证TensorFlow版本一致性:
python -c "import tensorflow as tf; print(tf.__version__); print(tf.__file__)"
确认输出的TensorFlow安装路径以/usr/local/lib/python3.6/dist-packages/tensorflow开头,不包含.local字段即为正常
- 若验证正常,重新执行测试脚本即可:
python object_detection/builders/model_builder_tf2_test.py
如果运行时仍提示依赖缺失,执行官方依赖安装命令补全依赖:
cd /models/research && protoc object_detection/protos/*.proto --python_out=. && cp object_detection/packages/tf2/setup.py . && python -m pip install .
内容的提问来源于stack exchange,提问作者me1960
相关产品推荐
相关产品推荐

