【问题标题】:TensorFlow object detection training error with TPU使用 TPU 的 TensorFlow 对象检测训练错误
【发布时间】:2018-12-28 01:10:02
【问题描述】:

我正在关注Google's object detection on a TPU 的帖子,但在培训方面遇到了困难。

查看作业日志,我可以看到 ml-engine 为各种软件包运行大量 pip 安装,提供 TPU,然后提交以下内容:

Running command: python -m object_detection.model_tpu_main 
--model_dir=gs://{MY_BUCKET}/train --tpu_zone us-central1 
--pipeline_config_path=gs://{MY_BUCKET}/data/pipeline.config 
--job-dir gs://{MY_BUCKET}/train

然后出错:

message:  "Traceback (most recent call last):
File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
exec code in run_globals
File "/root/.local/lib/python2.7/site-packages/object_detection/model_tpu_main.py", line 30, in <module>
from object_detection import model_lib
File "/root/.local/lib/python2.7/site-packages/object_detection/model_lib.py", line 26, in <module>
from object_detection import eval_util
File "/root/.local/lib/python2.7/site-packages/object_detection/eval_util.py", line 28, in <module>
from object_detection.metrics import coco_evaluation
File "/root/.local/lib/python2.7/site-packages/object_detection/metrics/coco_evaluation.py", line 20, in <module>
from object_detection.metrics import coco_tools
File "/root/.local/lib/python2.7/site-packages/object_detection/metrics/coco_tools.py", line 47, in <module>
from pycocotools import coco
File "/root/.local/lib/python2.7/site-packages/pycocotools/coco.py", 
line 49
import matplotlibnmatplotlib.use('Agg')nimport matplotlib.pyplot as plt
                                ^
SyntaxError: invalid syntax
"   

这是我第一次使用 ml-engine,我被卡住了。我发现错误引用 python2.7 很奇怪,因为我在 python3.6 环境中从笔记本电脑提交了作业。

关于从这里去哪里或做什么有什么想法吗?

【问题讨论】:

    标签: tensorflow object-detection google-cloud-tpu


    【解决方案1】:

    根据堆栈跟踪,三行不同的代码不知何故落在了同一行(第 49 行)。我相信我最近在玩新的 Tensorflow 对象检测 API 时也遇到了同样的问题,问题出在models/research/object_detection/dataset_tools/create_pycocotools_package.sh,具体如下:

    sed "s/import matplotlib\.pyplot as plt/import matplotlib\nmatplotlib\.use\(\'Agg\'\)\nimport matplotlib\.pyplot as plt/g" pycocotools/coco.py &gt; coco.py.updated

    对我来说,问题是换行符无法识别,我通过使用如下文字换行符解决了这个问题:

    sed "s/import matplotlib\.pyplot as plt/import matplotlib\\ matplotlib\.use\(\'Agg\'\)\\ import matplotlib\.pyplot as plt/g" pycocotools/coco.py > coco.py.updated

    希望这会有所帮助。

    【讨论】:

    • @Gshock @K.Lee - 我遇到了同样的问题,但我不确定如何编辑您所指的文件,因为它在 Google Cloud Platform 上而不是在本地运行。您是如何编辑create_pycocotools_package.sh 文件的?我在本地编辑它,它似乎没有改变任何东西......
    • 没关系 - 我意识到我忘记在重新运行作业之前重新打包代码。感谢您的回答! +1
    猜你喜欢
    • 2018-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 2018-12-07
    • 2018-11-03
    • 2020-06-17
    相关资源
    最近更新 更多