【发布时间】: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 "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/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 "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/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 "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/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