Сохранить модель для обслуживания TensorFlow с конечной точкой API, сопоставленной определенному методу с помощью SignatureDefs?

Вы можете использовать EXISTS для выполнения своей работы.

Ниже запроса будет получено имя магазина, только если город 2 имеет имя.

SELECT store_name FROM stores WHERE EXISTS (SELECT name FROM cities WHERE id = 2);

7
задан joshwa 7 March 2019 в 20:26
поделиться

1 ответ

Примечание . Чтобы полностью и всесторонне ответить на этот вопрос, потребовалось бы углубиться в архитектуру обслуживания, ее API-интерфейсы и то, как они взаимодействуют с сигнатурами моделей. Я пропущу все это, чтобы сохранить ответ на приемлемой длине, но я всегда могу расширить чрезмерно неясные части, если это необходимо (оставьте комментарий, если это так).

Как модель half_plus_two знает, что делать с параметром экземпляров?

Из-за нескольких не упомянутых причин, которые накапливаются, чтобы сделать это удобным коротким примером, если только IMO a немного вводит в заблуждение.

1) Откуда берется параметр instances? Определение Predict API для RESTful API имеет предопределенный формат запроса, который в одном из двух возможных формы, принимает один instances параметр.

2) На что отображается параметр instances? Мы не знаем. для SignatureDefs только с одним входом instances в этом очень специфическом формате вызова отображается непосредственно на вход без необходимости указывать ключ ввода ( см. раздел «Задание входных тензоров в формате строки» в Спецификации API ).

Итак, что происходит: вы делаете POST-запрос к модели, в которой определен только один вход. TF Serving принимает эти входные данные и передает их в модель, запускает их до тех пор, пока не получит все значения для тензоров, определенных в части «выводы» сигнатуры модели, и вернет вам объект JSON с key:result элементами для каждого ключа в список «выходов».

Как я могу обслуживать обученную модель из учебника по генерации текста и иметь входные параметры для модели, привязанные к уникальным методам, таким как generate_text?

Вы не можете (не по крайней мере, непосредственное сопоставление функции с методом обслуживания. Инфраструктура обслуживания предоставляет некоторые предопределенные методы (regress, predict, classify), которые знают, как интерпретировать сигнатуры для получения запрошенного вами результата, запустив конкретные подграфы модели. Эти подграфы должны быть включены в SavedModel, поэтому, например, использование tf.py_func не будет работать.

Ваш лучший шанс - попытаться описать генерацию текста как подграф TF (т. Е. Используя исключительно операции TF) и написать отдельный SignatureDef, который принимает начальную строку и num_generate в качестве входных данных.

0
ответ дан GPhilo 7 March 2019 в 20:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: