【问题标题】:Google Cloud Platform, ML Engine, "No module named absl"谷歌云平台,机器学习引擎,“没有名为 absl 的模块”
【发布时间】: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 "ma​​in", 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


【解决方案1】:

您应该添加到 setup.py 中的 REQUIRED_PACKAGES 列表中的包是 'absl-py>=0.1.0'。除此之外,将此包 tar.gz 文件下载到 models/research/dist 。通过运行 pip install absl-py 安装。然后,在启动作业时将dist/avsl-0.4.0.tar.gz 添加到传递给--packages 标志的变量中。

【讨论】:

    猜你喜欢
    • 2019-02-14
    • 2018-09-23
    • 1970-01-01
    • 2020-06-20
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多