来自 https://github.com/tensorflow/models/blob/master/research/object_detection/model_main_tf2.py,共享的方法是从 linux 终端或 anaconda 提示符运行 Tensorflow 对象检测 API。
在特定的编码平台上,我无法访问终端。那么,有没有办法从 Jupyter Notebook 单元运行 Tensorflow 对象检测 API?
在 Jupyter Notebook 单元格中,我分别运行了以下 2 个代码段并遇到了错误:
代码段 1
PIPELINE_CONFIG_PATH=<PIPELINE_CONFIG_PATH>
MODEL_DIR=<MODEL_DIR>
os.path.exists(PIPELINE_CONFIG_PATH) # True
%run -t /<pathprefix>/working/models/research/object_detection/model_main_tf2.py --pipeline_config_path=PIPELINE_CONFIG_PATH --model_dir=MODEL_DIR --alsologtostderr
NotFoundError Traceback (most recent call last)
/kaggle/working/models/research/object_detection/model_main_tf2.py in <module>
112
113 if __name__ == '__main__':
--> 114 tf.compat.v1.app.run()
/opt/conda/lib/python3.7/site-packages/tensorflow/python/platform/app.py in run(main, argv)
34 main = main or _sys.modules['__main__'].main
35
---> 36 _run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
/opt/conda/lib/python3.7/site-packages/absl/app.py in run(main, argv, flags_parser)
306 callback()
307 try:
--> 308 _run_main(main, args)
309 except UsageError as error:
310 usage(shorthelp=True, detailed_error=error, exitcode=error.exitcode)
/opt/conda/lib/python3.7/site-packages/absl/app.py in _run_main(main, argv)
252 sys.exit(retval)
253 else:
--> 254 sys.exit(main(argv))
255
256
/kaggle/working/models/research/object_detection/model_main_tf2.py in main(unused_argv)
109 use_tpu=FLAGS.use_tpu,
110 checkpoint_every_n=FLAGS.checkpoint_every_n,
--> 111 record_summaries=FLAGS.record_summaries)
112
113 if __name__ == '__main__':
/opt/conda/lib/python3.7/site-packages/object_detection/model_lib_v2.py in train_loop(pipeline_config_path, model_dir, config_override, train_steps, use_tpu, save_final_config, checkpoint_every_n, checkpoint_max_to_keep, record_summaries, performance_summary_exporter, num_steps_per_iteration, **kwargs)
504
505 configs = get_configs_from_pipeline_file(
--> 506 pipeline_config_path, config_override=config_override)
507 kwargs.update({
508 'train_steps': train_steps,
/opt/conda/lib/python3.7/site-packages/object_detection/utils/config_util.py in get_configs_from_pipeline_file(pipeline_config_path, config_override)
136 pipeline_config = pipeline_pb2.TrainEvalPipelineConfig()
137 with tf.gfile.GFile(pipeline_config_path, "r") as f:
--> 138 proto_str = f.read()
139 text_format.Merge(proto_str, pipeline_config)
140 if config_override:
/opt/conda/lib/python3.7/site-packages/tensorflow/python/lib/io/file_io.py in read(self, n)
114 string if in string (regular) mode.
115 """
--> 116 self._preread_check()
117 if n == -1:
118 length = self.size() - self.tell()
/opt/conda/lib/python3.7/site-packages/tensorflow/python/lib/io/file_io.py in _preread_check(self)
76 "File isn't open for reading")
77 self._read_buf = _pywrap_file_io.BufferedInputStream(
---> 78 compat.path_to_str(self.__name), 1024 * 512)
79
80 def _prewrite_check(self):
NotFoundError: PIPELINE_CONFIG_PATH; No such file or directory
代码段2
!python /<pathprefix>/working/models/research/object_detection/model_main_tf2.py --pipeline_config_path=PIPELINE_CONFIG_PATH --model_dir=MODEL_DIR --alsologtostderr
Traceback (most recent call last):
File "/kaggle/working/models/research/object_detection/model_main_tf2.py", line 114, in <module>
tf.compat.v1.app.run()
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/platform/app.py", line 36, in run
_run(main=main, argv=argv, flags_parser=_parse_flags_tolerate_undef)
File "/opt/conda/lib/python3.7/site-packages/absl/app.py", line 308, in run
_run_main(main, args)
File "/opt/conda/lib/python3.7/site-packages/absl/app.py", line 254, in _run_main
sys.exit(main(argv))
File "/kaggle/working/models/research/object_detection/model_main_tf2.py", line 111, in main
record_summaries=FLAGS.record_summaries)
File "/opt/conda/lib/python3.7/site-packages/object_detection/model_lib_v2.py", line 506, in train_loop
pipeline_config_path, config_override=config_override)
File "/opt/conda/lib/python3.7/site-packages/object_detection/utils/config_util.py", line 138, in get_configs_from_pipeline_file
proto_str = f.read()
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/lib/io/file_io.py", line 116, in read
self._preread_check()
File "/opt/conda/lib/python3.7/site-packages/tensorflow/python/lib/io/file_io.py", line 78, in _preread_check
compat.path_to_str(self.__name), 1024 * 512)
tensorflow.python.framework.errors_impl.NotFoundError: PIPELINE_CONFIG_PATH; No such file or directory