GCloud MLEngine: Создать версию не удалось. Обнаружена плохая модель с ошибкой: не удалось загрузить модель: требуется объект, похожий на байты, а не 'str' (код ошибки: 0) - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь создать версию под моделями google cloud ml для успешно обученной модели оценки тензорного потока.Я считаю, что я предоставляю правильный Uri (в хранилище Google), который включает в себя сохраненный_модель.pb.

Framework: Tensorflow, Framework Framework: 1.13.1, Runtime Version: 1.13, Python: 3.5

Вот трассировка ошибки:

Traceback (most recent call last):
  File "/google/google-cloud-sdk/lib/googlecloudsdk/calliope/cli.py", line 985, in Execute
    resources = calliope_command.Run(cli=self, args=args)
  File "/google/google-cloud-sdk/lib/googlecloudsdk/calliope/backend.py", line 795, in Run
    resources = command_instance.Run(args)
  File "/google/google-cloud-sdk/lib/surface/ml_engine/versions/create.py", line 119, in Run
    python_version=args.python_version)
  File "/google/google-cloud-sdk/lib/googlecloudsdk/command_lib/ml_engine/versions_util.py", line 114, in Create
    message='Creating version (this might take a few minutes)...')
  File "/google/google-cloud-sdk/lib/googlecloudsdk/command_lib/ml_engine/versions_util.py", line 75, in WaitForOpMaybe
    return operations_client.WaitForOperation(op, message=message).response
  File "/google/google-cloud-sdk/lib/googlecloudsdk/api_lib/ml_engine/operations.py", line 114, in WaitForOperation
    sleep_ms=5000)
  File "/google/google-cloud-sdk/lib/googlecloudsdk/api_lib/util/waiter.py", line 264, in WaitFor
    sleep_ms, _StatusUpdate)
  File "/google/google-cloud-sdk/lib/googlecloudsdk/api_lib/util/waiter.py", line 326, in PollUntilDone
    sleep_ms=sleep_ms)
  File "/google/google-cloud-sdk/lib/googlecloudsdk/core/util/retry.py", line 229, in RetryOnResult
    if not should_retry(result, state):
  File "/google/google-cloud-sdk/lib/googlecloudsdk/api_lib/util/waiter.py", line 320, in _IsNotDone
    return not poller.IsDone(operation)
  File "/google/google-cloud-sdk/lib/googlecloudsdk/api_lib/util/waiter.py", line 122, in IsDone
    raise OperationError(operation.error.message)
OperationError: Bad model detected with error:  "Failed to load model: a bytes-like object is required, not 'str' (Error code: 0)"
ERROR: (gcloud.ml-engine.versions.create) Bad model detected with error:  "Failed to load model: a bytes-like object is required, not 'str' (Error code: 0)"

Есть идеи, в чем может быть проблема?

РЕДАКТИРОВАТЬ

Я использую: tf.estimator.LatestExporter('exporter', model.serving_input_fn) в качестве экспортера оценки.

serve_input_fn:

def serving_input_fn():
    inputs = {'string1': tf.placeholder(tf.int16, [None, MAX_SEQUENCE_LENGTH]),
              'string2': tf.placeholder(tf.int16, [None, MAX_SEQUENCE_LENGTH])}

    return tf.estimator.export.ServingInputReceiver(inputs, inputs)

PS: моя модель принимает два входа и возвращает один двоичный выход.

...