Накапливать прогнозы в выходном тензоре для обслуживания Google Cloud - PullRequest
0 голосов
/ 20 ноября 2018

Я новичок в TF и ​​пытаюсь развернуть Quick, Draw! модель в Google Cloud.Он использует пользовательский Estimator и принимает 1 tfexample и возвращает классификационный тензор формы (8).Одним из требований к развертываемым моделям является то, что входные и выходные тензоры должны поддерживать пакетирование, например, их внешние размеры должны быть None.

Сделать это для входного тензора легко, поскольку у нас есть serving_input_receiver_fn под контролем, а для выходного тензора я запутался, потому что, если я изменяю выходной тензор, мне также нужно провести рефакторинг всей последовательности операций / оценки.Есть ли какие-нибудь ярлыки для этого?

1 Ответ

0 голосов
/ 14 июня 2019

Я смог подтвердить, что на самом деле выходные данные из сохраненной модели, экспортированной из оценщика TensorFlow, будут иметь тот же размер пакета, что и входные данные.

При попытке экспортировать и развернуть это несколько предостереженийСпециальное руководство для службы прогнозирования AI Platform в Google Cloud:

  • Необходимо обновить model_fn, чтобы правильно обрабатывать режим PREDICT.

  • Служба прогнозирования фактически требует, чтобы внешнее измерение было None в сохраненной модели, это также требует некоторого изменения кода в руководстве, поскольку оно определяет размер пакета.

  • Руководствокод не включает в себя вызов estimator.export_saved_model, в частности, вам необходимо реализовать serving_input_receiver_fn.

  • Кажется, в TF есть ошибка, которая вызывает восстановление cudnn_lstm провал: https://github.com/tensorflow/tensorflow/issues/23898. Так, в частности, на данный момент, если модель обучена с cudnn_lstm, она не может быть развернута как сохраненная модель.

У меня естьвнес эти изменения вучебник в развилке: https://github.com/dizcology/models/tree/quickdraw-gcp/tutorials/rnn

...