2017-12-13 3 views
0

GitHubでTensorFlowのオブジェクト検出の例を実行しようとしました。モデルを正常に訓練しましたが、ローカルマシンやGoogle CloudのMLエンジンで動作しているかどうかにかかわらずモデルを評価しようとしたときにエラーが発生しました。DecodeError:テンソルフローオブジェクト検出の評価時にメッセージを解析中にエラーが発生しました。

Traceback (most recent call last): 
    File "/usr/lib/python2.7/runpy.py", line 162, 
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/eval.py", line 130, in <module> tf.app.run() 
    File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/platform/app.py", line 44, 
in run _sys.exit(main(_sys.argv[:1] + flags_passthrough)) File "/root/.local/lib/python2.7/site-packages/object_detection/eval.py", line 117, 
in main label_map = label_map_util.load_labelmap(input_config.label_map_path) 
    File "/root/.local/lib/python2.7/site-packages/object_detection/utils/label_map_util.py", line 122, 
in load_labelmap label_map.ParseFromString(label_map_string) DecodeError: Error parsing message 

私は以下をクラウドプラットフォームで評価するために使用します。

gcloud ml-engine jobs submit training `whoami`_object_detection_eval_`date +%s` 
    --job-dir=gs://poochie/training 
    --packages /home/User/Downloads/models-master/research/dist/object_detection-0.1.tar.gz,/home/User/Downloads/models-master/research/slim/dist/slim-0.1.tar.gz 
    --module-name object_detection.eval 
    --region europe-west1 
    --scale-tier BASIC_GPU 
    -- 
    --checkpoint_dir=gs://poochie/training 
    --eval_dir=gs://poochie/eval 
    --pipeline_config_path=gs://poochie/dogs.config 

gcloud ml-engine jobs submit training `whoami`_object_detection_eval_`date +%s` \ 
    --job-dir=${YOUR_GCS_BUCKET}/train \ 
    --packages dist/object_detection-0.1.tar.gz,slim/dist/slim-0.1.tar.gz \ 
    --module-name object_detection.eval \ 
    --region us-central1 \ 
    --scale-tier BASIC_GPU \ 
    -- \ 
    --checkpoint_dir=${YOUR_GCS_BUCKET}/train \ 
    --eval_dir=${YOUR_GCS_BUCKET}/eval \ 
    --pipeline_config_path=${YOUR_GCS_BUCKET}/data/${CONFIG_FILE} 

訓練は

evalは

dogs.config

# 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: 1 
    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: 0 
      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: "PATH_TO_BE_CONFIGURED/model.ckpt" 
    from_detection_checkpoint: true 
    # 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: "gs://poochie/train.record" 
    } 
    label_map_path: "gs://poochie/labelmap.pbtxt" 
} 

eval_config: { 
    num_examples: 2000 
    # 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: "gs://poochie/valid.record" 
    } 
    label_map_path: "gs://poochie/labelmap.pbtxt" 
    shuffle: false 
    num_readers: 1 
} 

labelmap.pbtxt

評価プロセスの出力のための空のファイルである列車のプロセスからの私のチェックポイントが含まれています
{ 
    "affenpinscher": 1 
} 

編集私のラベルマップを

に変更しました
item { 
    id: 1 
    name: 'affenpinscher' 
} 

この問題を解決しました。

答えて

0

.ParseFromString(...)を呼び出すと、入力ストリームのサイズを超えている可能性があります。あなたがtensorflowを実行する前に

export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python 

を:そのような場合は、これを修正して実行してローカルで実行しようとすることができます。

0

gs://poochie/labelmap.pbtxtに構文エラーがあるようです。あなたはそれを共有してもらえますか?

+0

確かに、今追加しました。 – elvie

関連する問題