【发布时间】:2019-01-13 04:04:59
【问题描述】:
我正在尝试按照以下教程使用 TensorFlow 训练对象检测器:https://cloud.google.com/blog/products/gcp/training-an-object-detector-using-cloud-machine-learning-engine
本教程要求使用object_detection.train,但是这已移至旧版,因此我改用object_detection.model_main。此 python 文件的第 21 行调用模块 absl,但这会导致以下错误(来自 GCP 日志查看器)。
Traceback(最近一次调用最后一次):文件“/usr/lib/python2.7/runpy.py”, 第 162 行,在 _run_module_as_main "main", fname, loader, pkg_name) 文件“/usr/lib/python2.7/runpy.py”,第 72 行,在 _run_code 执行代码中 run_globals 文件 "/root/.local/lib/python2.7/site-packages/object_detection/model_main.py", 第 21 行,从 absl 导入标志 ImportError: No module 命名为absl
我尝试在 object_detection 包的setup.py 文件的必需包部分中包含absl>=0.1,但这不起作用。接下来,我尝试在打包和开始工作之前将我的 absl 文件夹移动到 models/research/object_detection 目录中,但这也不起作用。我该如何解决?我对 Tensorflow 和 GCP 平台非常陌生,因此我们将不胜感激。谢谢。
【问题讨论】:
-
您应该能够在没有 absl 包的情况下通过
tf.app.flags访问flags。如果您将每次出现的flags(小写)替换为tf.app.flags,删除absl 导入,并删除包含flags.mark_flag_as_required的行,应用程序会工作吗? -
@MatthewScarpino 必须替换每个文件中对模块的每一次提及是非常乏味的。真正适用于它声称需要的模块的代码非常理想。
-
@Tejas 我已经设法克服了这个错误。您应该添加到 setup.py 中的
REQUIRED_PACKAGES列表的包是'absl-py>=0.1.0'。除此之外,将this package tar.gz 文件下载到models/research/dist。通过运行pip install absl-py安装。然后,在启动作业时将dist/avsl-0.4.0.tar.gz添加到传递给--packages标志的变量中。 -
@PhilippSh 您的解决方案非常完美。为什么不将其添加到答案中?
标签: python tensorflow google-cloud-platform object-detection google-cloud-ml