在tensorlfow对象检测api中导出推理图时出错

问题描述 投票:2回答:1

[嗨,我正在做tensorflow object detection api。我已经按照仓库中的所有主要说明进行操作了,直到现在为止一切正常,但是突然出现了一些奇怪的错误。我之前使用的是fast rcnn,现在切换到ssd mobile v2 coco

使用命令生成推理图时

python export_inference_graph.py --input_type image_tensor --pipeline_config_path training/faster_rcnn_inception_v2_pets.config --trained_checkpoint_prefix training/model.ckpt-10250 --output_directory inference_graph

我得到以下错误:

追踪(最近一次通话):文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/client/session.py”,行1356,在_do_call中在_run_fn中的第1341行中返回fn(* args)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/client/session.py”选项,feed_dict,fetch_list,target_list,run_metadata)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/client/session.py”,行1429,在_call_tf_sessionrun中run_metadata)tensorflow.python.framework.errors_impl.NotFoundError:关键转换/偏见在检查点[[{{node save / RestoreV2}}]]

中找不到

在处理以上异常期间,发生了另一个异常:

追踪(最近一次通话):文件还原中的“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/training/saver.py”,行1286{self.saver_def.filename_tensor_name:save_path})文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/client/session.py”,第950行,正在运行run_metadata_ptr)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/client/session.py”,行_runfeed_dict_tensor,选项,run_metadata)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/client/session.py”,行1350,在_do_run中run_metadata)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/client/session.py”,行1370,在_do_call中提高类型(e)(node_def,op,消息)tensorflow.python.framework.errors_impl.NotFoundError:关键转换/偏见在检查点[[node save / RestoreV2(在/home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/object_detection/exporter.py:331)]]

'save / RestoreV2'的原始堆栈跟踪:文件第162行中的“ export_inference_graph.py”tf.app.run()文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/platform/app.py”,40号线,运行中_run(main = main,argv = argv,flags_parser = _parse_flags_tolerate_undef)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/absl/app.py”,299行_run_main(main,args)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/absl/app.py”,_run_main中的第250行sys.exit(main(argv))文件“ export_inference_graph.py”,第158行,位于主目录中write_inference_graph = FLAGS.write_inference_graph)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/object_detection/exporter.py”,第497行,在export_inference_graph中write_inference_graph = write_inference_graph)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/object_detection/exporter.py”,_export_inference_graph中的第426行(文件为“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/object_detection/exporter.py”),在write_graph_and_checkpoint中的第331行tf.import_graph_def(inference_graph_def,name =“'')文件” /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py“,第507行,在new_func中返回func(* args,** kwargs)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/framework/importer.py”,import_graph_def中的第443行_ProcessNewOps(graph)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/framework/importer.py”,_ProcessNewOps中的第236行用于graph._add_new_tf_operations(compute_devices = False)中的new_op:#pylint:disable = protected-access File“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/framework/ops .py”,第375行,在_add_new_tf_operations中对于c_api_util.new_tf_operations(self)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/framework/ops.py”中的c_op,行3751,在对于c_api_util.new_tf_operations(self)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/framework/ops.py”中的c_op,第3641行,在_create_op_from_tf_operation中ret = Operation(c_op,self)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/framework/ops.py”,第2005行,在[[init中self._traceback = tf_stack.extract_stack()

在处理以上异常期间,发生了另一个异常:

追踪(最近一次通话):文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/training/saver.py”,行1296,在还原中names_to_keys = object_graph_key_mapping(save_path)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/training/saver.py”,行1614,在object_graph_key_mapping中object_graph_string = reader.get_tensor(trackable.OBJECT_GRAPH_PROTO_KEY)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/pywrap_tensorflow_internal.py”,第678行,位于get_tensor中返回CheckpointReader_GetTensor(自身,compat.as_bytes(tensor_str))tensorflow.python.framework.errors_impl.NotFoundError:键在检查点找不到_CHECKPOINTABLE_OBJECT_GRAPH

在处理以上异常期间,发生了另一个异常:

追踪(最近一次通话):文件“ export_inference_graph.py”,162行,在tf.app.run()文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/platform/app.py”,40号线,运行中_run(main = main,argv = argv,flags_parser = _parse_flags_tolerate_undef)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/absl/app.py”,299行_run_main(main,args)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/absl/app.py”,_run_main中的第250行sys.exit(main(argv))文件“ export_inference_graph.py”,第158行,位于主目录中write_inference_graph = FLAGS.write_inference_graph)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/object_detection/exporter.py”,第497行,在export_inference_graph中write_inference_graph = write_inference_graph)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/object_detection/exporter.py”,_export_inference_graph中的第426行(文件为“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/object_detection/exporter.py”),第335行,在write_graph_and_checkpoint中saver.restore(sess,trained_checkpoint_prefix)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/training/saver.py”,第1302行,在还原中err,“缺少变量名或其他图形键”)tensorflow.python.framework.errors_impl.NotFoundError:从中还原检查点失败。这很可能是由于变量名或其他检查点缺少的图形键。请确保您尚未更改基于检查点的预期图形。原版的错误:

在检查点[[节点保存/恢复V2中找不到关键转换/偏见(定义为/home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/object_detection/exporter.py:331)]]

'save / RestoreV2'的原始堆栈跟踪:文件第162行中的“ export_inference_graph.py”tf.app.run()文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/platform/app.py”,40行_run(main = main,argv = argv,flags_parser = _parse_flags_tolerate_undef)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/absl/app.py”,299行_run_main(main,args)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/absl/app.py”,_run_main中的第250行sys.exit(main(argv))文件“ export_inference_graph.py”,第158行,位于主目录中write_inference_graph = FLAGS.write_inference_graph)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/object_detection/exporter.py”,第497行,在export_inference_graph中write_inference_graph = write_inference_graph)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/object_detection/exporter.py”,_export_inference_graph中的第426行(文件为“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/object_detection/exporter.py”),在write_graph_and_checkpoint中的第331行tf.import_graph_def(inference_graph_def,name =“'')文件” /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/util/deprecation.py“,第507行,在new_func中返回func(* args,** kwargs)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/framework/importer.py”,import_graph_def中的第443行_ProcessNewOps(graph)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/framework/importer.py”,_ProcessNewOps中的第236行用于graph._add_new_tf_operations(compute_devices = False)中的new_op:#pylint:disable = protected-access File“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/framework/ops .py”,第375行,在_add_new_tf_operations中对于c_api_util.new_tf_operations(self)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/framework/ops.py”中的c_op,行3751,在对于c_api_util.new_tf_operations(self)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/framework/ops.py”中的c_op,第3641行,在_create_op_from_tf_operation中ret = Operation(c_op,self)文件“ /home/user/anaconda3/envs/my_env/lib/python3.6/site-packages/tensorflow/python/framework/ops.py”,第2005行,在[[init

中self._traceback = tf_stack.extract_stack()

实际上,它一直在正确地工作,无法弄清楚现在发生了什么。我也尝试了快速rcnn(它之前已经工作了),但是它也开始失败了

这里是配置文件。我目前正在为2个班级做这件事

# Faster R-CNN with Inception v2, configured for Oxford-IIIT Pets Dataset. # Users should configure the fine_tune_checkpoint field in the train config as # well as the label_map_path and input_path fields in the train_input_reader and # eval_input_reader. Search for "PATH_TO_BE_CONFIGURED" to find the fields that # should be configured. model { faster_rcnn { num_classes: 2 image_resizer { keep_aspect_ratio_resizer { min_dimension: 600 max_dimension: 1024 } } feature_extractor { type: 'faster_rcnn_inception_v2' first_stage_features_stride: 16 } first_stage_anchor_generator { grid_anchor_generator { scales: [0.25, 0.5, 1.0, 2.0] aspect_ratios: [0.5, 1.0, 2.0] height_stride: 16 width_stride: 16 } } first_stage_box_predictor_conv_hyperparams { op: CONV regularizer { l2_regularizer { weight: 0.0 } } initializer { truncated_normal_initializer { stddev: 0.01 } } } first_stage_nms_score_threshold: 0.0 first_stage_nms_iou_threshold: 0.7 first_stage_max_proposals: 300 first_stage_localization_loss_weight: 2.0 first_stage_objectness_loss_weight: 1.0 initial_crop_size: 14 maxpool_kernel_size: 2 maxpool_stride: 2 second_stage_box_predictor { mask_rcnn_box_predictor { use_dropout: false dropout_keep_probability: 1.0 fc_hyperparams { op: FC regularizer { l2_regularizer { weight: 0.0 } } initializer { variance_scaling_initializer { factor: 1.0 uniform: true mode: FAN_AVG } } } } } second_stage_post_processing { batch_non_max_suppression { score_threshold: 0.0 iou_threshold: 0.6 max_detections_per_class: 100 max_total_detections: 300 } score_converter: SOFTMAX } second_stage_localization_loss_weight: 2.0 second_stage_classification_loss_weight: 1.0 } } train_config: { batch_size: 1 optimizer { momentum_optimizer: { learning_rate: { manual_step_learning_rate { initial_learning_rate: 0.0002 schedule { step: 1 learning_rate: .0002 } schedule { step: 900000 learning_rate: .00002 } schedule { step: 1200000 learning_rate: .000002 } } } momentum_optimizer_value: 0.9 } use_moving_average: false } gradient_clipping_by_norm: 10.0 fine_tune_checkpoint: "/home/user/Downloads/Data_Science/Git/models/research/object_detection/faster_rcnn_inception_v2_coco_2018_01_28/model.ckpt" from_detection_checkpoint: true load_all_detection_checkpoint_vars: false # Note: The below line limits the training process to 200K steps, which we # empirically found to be sufficient enough to train the pets dataset. This # effectively bypasses the learning rate schedule (the learning rate will # never decay). Remove the below line to train indefinitely. num_steps: 200000 data_augmentation_options { random_horizontal_flip { } } } train_input_reader: { tf_record_input_reader { input_path: "/home/user/Downloads/Data_Science/Git/models/research/object_detection/train.record" } label_map_path: "/home/user/Downloads/Data_Science/Git/models/research/object_detection/training/labelmap.pbtxt" } eval_config: { num_examples: 67 # Note: The below line limits the evaluation process to 10 evaluations. # Remove the below line to evaluate indefinitely. max_evals: 10 } eval_input_reader: { tf_record_input_reader { input_path: "C:/tensorflow1/models/research/object_detection/test.record" } label_map_path: "C:/tensorflow1/models/research/object_detection/training/labelmap.pbtxt" shuffle: false num_readers: 1 }

在github中发现onetwo类似错误。但是它没有用。任何帮助将不胜感激。如果您需要更多信息,请发表评论。谢谢!

python tensorflow computer-vision object-detection object-detection-api
1个回答
0
投票
或者,请确保您使用的是对象检测框架支持的TF版本。您可以找到所有发行版here
© www.soinside.com 2019 - 2024. All rights reserved.