#python #tensorflow #tensorflow-serving
#python #tensorflow #обслуживание tensorflow
Вопрос:
В настоящее время я работаю над моделью tensorflow. Эта модель классифицирует ситуацию на основе 2 строк и числа. Итак, мои заполнители выглядят следующим образом:
Input1 = tf.placeholder("string", shape=None, name="string1")
Input2 = tf.placeholder("string", shape=None, name="string2")
Input3 = tf.placeholder("float", shape=None, name="distance")
label = tf.placeholder("int64", shape=None, name="output")
Я хочу обслуживать эту модель с помощью Tensorflow, обслуживающего этот код:
signature_definition = tf.saved_model.signature_def_utils.build_signature_def(
inputs={'input1': model_input1, 'input2': model_input2, 'input3': model_input3},
outputs={'outputs': model_output},
method_name=tf.saved_model.signature_constants.PREDICT_METHOD_NAME)
builder = tf.saved_model.builder.SavedModelBuilder(SERVE_PATH)
builder.add_meta_graph_and_variables(
sess, [tf.saved_model.tag_constants.SERVING],
signature_def_map={
tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY:
signature_definition
})
Но модель, которую я написал, хочет, чтобы строки были закодированы как входные данные в формате one_hot. Кто-нибудь знает, как преобразовать входные тензоры в кодированные one_hot и передать их в мою модель?
Во время обучения моей модели я просто преобразовал их с помощью функции, прежде чем отправлять их. Это кажется невозможным во время обслуживания, потому что я могу определить только функцию ввода, а не поток входных данных.
Ответ №1:
tf.one_hot предоставляет кодировку one hot.
Однако, в более широком смысле, вам необходимо координировать обучение и обслуживание, чтобы использовать один и тот же индекс. Преобразование Tensorflow предоставляет способ выполнять множество преобразований (однократное преобразование, масштабирование, группирование), включая однократное кодирование, на этапе обработки обучающих данных и сохранять преобразование как часть графика модели, следовательно, автоматически повторно применять то же преобразование во время обслуживания, избавляя вас от ручной работы. Ознакомьтесь с их примером по ссылке ниже:
Пример: https://www.tensorflow.org/tfx/transform/tutorials/TFT_simple_example
Пример 2: https://github.com/tensorflow/transform/blob/master/examples/sentiment_example.py
Полный Python API:https://www.tensorflow.org/tfx/transform/api_docs/python/tft
Функция, которую вы ищете там, называется tft.compute_and_apply_vocabulary.
Комментарии:
1. Спасибо за помощь! Это было именно то, что мне было нужно
2. Есть ли какой-либо способ настроить обслуживающий приемник ввода, чтобы получать входные данные в формате json вместо tf.example?