【问题标题】:Numerous remote errors when following TensorFlow Pets on Google Cloud tutorial遵循 Google Cloud 上的 TensorFlow Pets 教程时出现许多远程错误
【发布时间】:2018-10-03 17:18:58
【问题描述】:

按照“Google Cloud 上 Oxford-IIIT Pets 数据集的分布式训练”教程 on the official TensorFlow Models repo 中的说明,我遇到了一些问题。首先,这个:

终止原因:错误。 Traceback(最近一次通话最后一次):文件 “/usr/lib/python2.7/runpy.py”,第 174 行,在 _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/train.py", 第 51 行,从 object_detection.builders 导入 model_builder 文件 "/root/.local/lib/python2.7/site-packages/object_detection/builders/model_builder.py", 第 29 行,从 object_detection.meta_architectures 导入 ssd_meta_arch 文件 “/root/.local/lib/python2.7/site-packages/object_detection/meta_architectures/ssd_meta_arch.py​​”, 第 32 行,从 object_detection.utils 导入 可视化工具文件 "/root/.local/lib/python2.7/site-packages/object_detection/utils/visualization_utils.py", 第 25 行,在导入 matplotlib 中; matplotlib.use('Agg') # pylint: disable=multiple-statements ImportError: No module named matplotlib

最后一部分是“没有名为 matplotlib 的模块”。根据网上的一些建议,我编辑了提供的 setup.py,以添加“matplotlib”作为要求:

REQUIRED_PACKAGES = ['Pillow>=1.0', 'matplotlib']

再次运行它,解决了这个问题。奇怪 - 你会假设它是一个教程,它不会有这个问题。接下来,它遇到了一个新问题:

终止原因:错误。 Traceback(最近一次通话最后一次):文件 “/usr/lib/python2.7/runpy.py”,第 174 行,在 _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/train.py", 第 167 行,在 tf.app.run() 文件中 "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", 第 48 行,运行中 _sys.exit(main(_sys.argv[:1] + flags_passthrough)) 文件 "/root/.local/lib/python2.7/site-packages/object_detection/train.py", 第 163 行,在主 worker_job_name、is_chief、FLAGS.train_dir) 文件中 "/root/.local/lib/python2.7/site-packages/object_detection/trainer.py", 第 264 行,在 train_config.prefetch_queue_capacity 中, data_augmentation_options) 文件 "/root/.local/lib/python2.7/site-packages/object_detection/trainer.py", 第 59 行,在 create_input_queue 中 tensor_dict = create_tensor_dict_fn() 文件 "/root/.local/lib/python2.7/site-packages/object_detection/train.py", 第 120 行,在 get_next dataset_builder.build(config)).get_next() 文件中 "/root/.local/lib/python2.7/site-packages/object_detection/builders/dataset_builder.py", 第 164 行,在构建 functools.partial(tf.data.TFRecordDataset, buffer_size=8 * 1000 * 1000), AttributeError: 'module' object has no 属性“数据”副本工作者 0 以非零状态退出 1.

由于没有与此问题相关的搜索结果,因此很难知道问题出在哪里,尽管有一个答案表明 TensorFlow 版本已过时。该项目声明的 TensorFlow 版本是 TensorFlow 1.2。 TensorFlow 现在是 1.7 版,所以也许这就是问题所在。运行时版本列表的选项有 1.2、1.4、1.5 和 1.6。用 1.6 尝试,我得到了一个不同的错误:

终止原因:错误。回溯(最近一次通话最后一次):[...] 文件 “/usr/local/lib/python2.7/dist-packages/tensorflow/contrib/slim/python/slim/learning.py”, 第 746 行,在 train master 中,start_standard_services=False, config=session_config) as sess: 文件 “/usr/lib/python2.7/contextlib.py”,第 17 行,在 enter 中返回 self.gen.next() 文件 “/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/supervisor.py”, 第 1000 行,在 managed_session 中 self.stop(close_summary_writer=close_summary_writer) 文件 “/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/supervisor.py”, 第 828 行,在 stop ignore_live_threads=ignore_live_threads) 文件中 “/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/coordinator.py”, 第 389 行,在 join Six.reraise(*self._exc_info_to_raise) 文件中 “/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/supervisor.py”, 第 989 行,在 managed_session 中 start_standard_services=start_standard_services) 文件 “/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/supervisor.py”, 第 734 行,在 prepare_or_wait_for_session 中 max_wait_secs=max_wait_secs) 文件 “/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/session_manager.py”, 第 402 行,在 wait_for_session 会话中)文件 “/usr/local/lib/python2.7/dist-packages/tensorflow/python/training/session_manager.py”, 第 486 行,在 _try_run_local_init_op sess.run(self._local_init_op) 文件中 "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", 第 905 行,在运行 run_metadata_ptr) 文件 "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", 第 1137 行,在 _run feed_dict_tensor、options、run_metadata) 文件中 "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", 第 1355 行,在 _do_run 选项中,run_metadata) 文件 "/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.py", 第 1374 行,在 _do_call raise type(e)(node_def, op, message) UnavailableError: OS Error The replica worker 1 exited with a non-zero 状态为 1。

同样,目前似乎没有解决此错误的方法。所以我在黑暗中刺伤。我用 TensorFlow 1.4 再试一次。新错误:

终止原因:错误。 Traceback(最近一次通话最后一次):文件 “/usr/lib/python2.7/runpy.py”,第 174 行,在 _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/train.py", 第 167 行,在 tf.app.run() 文件中 "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", 第 48 行,运行中 _sys.exit(main(_sys.argv[:1] + flags_passthrough)) 文件 "/root/.local/lib/python2.7/site-packages/object_detection/train.py", 第 163 行,在主 worker_job_name、is_chief、FLAGS.train_dir) 文件中 "/root/.local/lib/python2.7/site-packages/object_detection/trainer.py", 第 264 行,在 train_config.prefetch_queue_capacity 中, data_augmentation_options) 文件 "/root/.local/lib/python2.7/site-packages/object_detection/trainer.py", 第 59 行,在 create_input_queue 中 tensor_dict = create_tensor_dict_fn() 文件 "/root/.local/lib/python2.7/site-packages/object_detection/train.py", 第 120 行,在 get_next dataset_builder.build(config)).get_next() 文件中 "/root/.local/lib/python2.7/site-packages/object_detection/builders/dataset_builder.py", 第 165 行,在构建 process_fn,config.input_path[:], input_reader_config) 文件 "/root/.local/lib/python2.7/site-packages/object_detection/utils/dataset_util.py", 第 133 行,在 read_dataset tf.contrib.data.parallel_interleave( AttributeError:“模块”对象没有属性“parallel_interleave” 副本工作者 0 以非零状态 1 退出

我现在发现自己深陷错误的世界,我真的不知道我的下一步应该是什么。我只是按照教程的步骤,执行他们说要执行的代码行,并在执行 5-10 分钟后收到这些远程错误。

我们将不胜感激有关如何克服这些问题的任何建议。

【问题讨论】:

  • 您是否尝试过寻找更好的教程?一种可能有效的方法
  • @musefan 这是一个官方教程 - 涵盖同一领域的其他教程总是参考这些教程的具体步骤

标签: python python-2.7 tensorflow google-cloud-platform


【解决方案1】:

其中一些错误应该在the following commit 之前发生。 现在使用repo,按照here 中的说明对我有用。只有看起来你需要使用--runtime-version 1.7 标志。 如果您一直遇到问题,请确保您使用sudo 关注installation instructions

如果没有,有些人仍然说他们需要在 setup.py 中添加 Tensorflow 和 Jupyter(不过我不是这样)

【讨论】:

    【解决方案2】:

    您遇到了安装问题。卸载所有内容并通过启动 Python 并导入已卸载的内容来确认已卸载,以确保您观察到每个已卸载包的 ImportError。

    然后仔细按照the installation page 上的步骤进行操作,这确实表明了 matplotlib 的单独安装步骤等等。

    【讨论】:

    • matplotlib 等库安装在本地。安装说明末尾的脚本运行没有问题,其他脚本也是如此。问题是在 Google Cloud 实例上,我遇到了问题。
    • “谷歌云实例”是一个虚拟机,你是说你的脚本在本地工作,但不在虚拟机中?你也按照上面的答案在 vm 中完成了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-17
    • 2023-03-17
    • 2011-09-03
    • 2020-04-05
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多