Локальный прогноз ML-Engine - не удалось запустить модель - PullRequest
0 голосов
/ 03 октября 2018

локальный прогноз gcloud ml-engine не выполняется

Сначала я определил требуемую структуру input.json с помощью saved_model_cli show --all --dir saved_model/ Ответ:

MetaGraphDef with tag-set: 'serve' contains the following SignatureDefs:

signature_def['serving_default']:
The given SavedModel SignatureDef contains the following input(s):
inputs['inputs'] tensor_info:
    dtype: DT_UINT8
    shape: (-1, -1, -1, 3)
    name: image_tensor:0
....

Из этого я отформатировалмой input.json для gcloud ml-engine local predict как:

{"inputs": {"b64": "ENCODED"}}
...

Наконец, я побежал gcloud ml-engine local predict --model-dir saved_model/ --json-instances=PATH-TO-INPUTS.json

Ответ:

ERROR: (gcloud.ml-engine.local.predict) /usr/local/lib/python2.7/dist-packages/requests/__init__.py:83:
2018-10-03 09:20:06.598090: I tensorflow/core/platform/cpu_feature_guard.cc:140] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
ERROR:root:Exception during running the graph: invalid literal for long() with base 10: '\xff\xd8\xff\xdb'
Traceback (most recent call last):
  File "/usr/lib/google-cloud-sdk/lib/googlecloudsdk/command_lib/ml_engine/local_predict.py", line 172, in <module>
    main()
  File "/usr/lib/google-cloud-sdk/lib/googlecloudsdk/command_lib/ml_engine/local_predict.py", line 167, in main
    signature_name=args.signature_name)
  File "/usr/lib/google-cloud-sdk/lib/third_party/ml_sdk/cloud/ml/prediction/prediction_lib.py", line 106, in local_predict
    predictions = model.predict(instances, signature_name=signature_name)
  File "/usr/lib/google-cloud-sdk/lib/third_party/ml_sdk/cloud/ml/prediction/prediction_utils.py", line 233, in predict
    preprocessed, stats=stats, **kwargs)
  File "/usr/lib/google-cloud-sdk/lib/third_party/ml_sdk/cloud/ml/prediction/frameworks/tf_prediction_lib.py", line 350, in predict
    "Exception during running the graph: " + str(e))
cloud.ml.prediction.prediction_utils.PredictionError: Failed to run the provided model: Exception during running the graph: invalid literal for long() with base 10: '\xff\xd8\xff\xdb' (Error code: 2)

Любая помощь в преодолении этого препятствия будетотличный.До сих пор я не смог найти решение по исследованиям онлайн.Спасибо!

1 Ответ

0 голосов
/ 03 октября 2018

Данные в input.json не соответствуют форме inputs['inputs'].Вы не предоставили достаточно информации о том, что представляют различные измерения, но я подозреваю, что это NHWC (размер пакета х высота х ширина х каналов) кодирования изображения.

Я также подозреваю, что это должен быть необработанный пиксельценности.В этом случае вы не должны быть base64, кодирующими значения, т.е. вы должны отправлять данные следующим образом:

{"inputs": [[[0, 0, 0], ... [0, 0, 0]]]}

При этом вам следует рассмотреть возможность отправки изображения в виде строки байтов и декодирования изображения вграфик.Более подробную информацию о различных подходах можно найти здесь:

https://stackoverflow.com/a/46222990/1399222

Похоже, вы используете «Raw Tensor Encoded as JSON», и я рекомендую «Compressed Imaged Data», или немного более простой«Тензоры, упакованные как байтовые строки»

...