Google Cloud ML returns empty predictions with object detection model

眉间皱痕 提交于 2019-12-13 03:57:56

问题


I am deploying a model to Google Cloud ML for the first time. I have trained and tested the model locally and it still needs work but it works ok.

I have uploaded it to Cloud ML and tested with the same example images I test locally that I know get detections. (using this tutorial)

When I do this, I get no detections. At first I thought I had uploaded the wrong checkpoint but I tested and the same checkpoint works with these images offline, I don't know how to debug further.

When I look at the results the file

prediction.results-00000-of-00001

is just empty

and the file

prediction.errors_stats-00000-of-00001

contains the following text: ('No JSON object could be decoded', 1)

Is this a sign the detection has run and detected nothing, or is there some problem while running?

Maybe the problem is I am preparing the images wrong for uploading?

The logs show no errors at all

Thank you

EDIT:

I was doing more tests and tried to run the model locally using the command "gcloud ml-engine local predict" instead of the usual local code. I get the same result as online, no answer at all, but also no error message

EDIT 2: I am using a TF_Record file, so I don't understand the JSON response. Here is a copy of my command:

gcloud ml-engine jobs submit prediction ${JOB_ID} --data- format=tf_record \ --input-paths=gs://MY_BUCKET/data_dir/inputs.tfr \ --output-path=gs://MY_BUCKET/data_dir/version4 \ --region us-central1 \ --model="gcp_detector" \ --version="Version4"


回答1:


Works with the following commands

Model export:

# From tensorflow/models
export PYTHONPATH=$PYTHONPATH:/home/[user]/repos/DeepLearning/tools/models/research:/home/[user]/repos/DeepLearning/tools/models/research/slim
cd /home/[user]/repos/DeepLearning/tools/models/research
python object_detection/export_inference_graph.py \
    --input_type encoded_image_string_tensor \
    --pipeline_config_path /home/[user]/[path]/ssd_mobilenet_v1_pets.config \
    --trained_checkpoint_prefix /[path_to_checkpoint]/model.ckpt-216593 \
    --output_directory /[output_path]/output_inference_graph.pb

Cloud execution

gcloud ml-engine jobs submit prediction ${JOB_ID} --data-format=TF_RECORD \
    --input-paths=gs://my_inference/data_dir/inputs/* \
    --output-path=${YOUR_OUTPUT_DIR}  \
    --region us-central1 \
    --model="model_name" \
    --version="version_name" 

I don't know what change exactly fixes the issue, but there are some small changes like tf_record now being TF_RECORD. Hope this helps someone else. Props to google support for their help (they suggested the changes)



来源:https://stackoverflow.com/questions/50085423/google-cloud-ml-returns-empty-predictions-with-object-detection-model

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!