как уменьшить размер ввода для обученной модели маска-RCNN при выполнении прогноза на облачной платформе Google - PullRequest
2 голосов
/ 30 октября 2019

Я пытаюсь использовать прогноз Google AI Platform для распознавания объектов с помощью маски RCNN. Потратив около двух недель, я смог:

  1. узнать, как тренироваться в Google Cloud
  2. конвертировать модель из h5 в формат SavedModel, требуемый платформой AI
  3. создайте Модели Платформы ИИ и разверните обученные модели там.

Теперь, когда я пытаюсь выполнить прогноз, он сказал, что мой размер ввода превышает 1,5 МБ, что является максимальным размером, который может быть введен. Когда я это проверил, код, который преобразует изображение (размером 65 КБ) в формат, необходимый для прогнозирования, делает входной файл 57 МБ.

Я понятия не имею, как можно преобразовать файл изображения 64 КБ в57 МБ JSON-файл при формовании. И я хотел знать, как я могу уменьшить это? Не уверен, что делаю что-то не так.

Я попытался выполнить локальное прогнозирование, используя локальный прогноз gcloud, и мне удалось получить ответ с файлом размером 57 МБ. Итак, это означает, что файл правильный.

Я попытался установить максимальный размер изображения 400X400, и это уменьшило размер файла с 57 МБ до 7 МБ. который все еще очень высок. Я не могу продолжать сокращать его, поскольку это приводит к потере информации.

1 Ответ

0 голосов
/ 04 ноября 2019

Согласно интерактивной документации по прогнозированию

Двоичные данные не могут быть отформатированы как строки в кодировке UTF-8, которые поддерживает JSON. Если у вас есть двоичные данные во входных данных, вы должны использовать кодировку base64 для их представления.

Вам нужно, чтобы ваш тензор input_image назывался input_image_bytes, и вы будете отправлять ему данные следующим образом:

{'input_image_bytes': {'b64': base64.b64encode(jpeg_data).decode()}}

Если вам нужна помощь в исправлении входных данных модели, вы должны увидеть def _encoded_image_string_tensor_input_placeholder() в exporter.py , вызванном из export_inference_graph.py

...