Создание экземпляров или входных данных для API REST TensorFlow Serving

Я готов опробовать мой REST API TensorFlow Serving на основе сохраненной модели, и мне было интересно, есть ли простой способ генерировать экземпляры JSON (на основе строк) или входные данные (столбцы), которые мне нужно отправить с моим запросом.

У меня есть несколько тысяч функций в моей модели, и я не хотел бы вручную вводить JSON. Есть ли способ, которым я могу использовать существующие данные, чтобы получить сериализованные данные, которые я могу выдать в API прогнозирования?

Я использую TFX для всего конвейера (включая tf.Transform), поэтому я не уверен, есть ли аккуратный способ, встроенный в TFX, который я могу использовать.

Выход из saved_model_cli это:

The given SavedModel SignatureDef contains the following input(s):
  inputs['examples'] tensor_info:
      dtype: DT_STRING
      shape: (-1)
      name: input_example_tensor:0

Что не говорит мне много.

2 ответа

Вы можете использовать клиент Python REST для программного вызова, вместо того, чтобы вручную составлять запрос. Это пример кода в github tenorflow_serving:

https://github.com/tensorflow/serving/blob/master/tensorflow_serving/example/resnet_client.py

Вы можете попробовать следующий код:

examples = []
for _, row in Inputs.iterrows():
  example = tf.train.Example()
  for col, value in row.iteritems():
    example.features.feature[col].float_list.value.append(value)
  examples.append(example)
print(examples)

Это будет JSON, как показано ниже:

[features {
  feature {
    key: "PetalLength"
    value {
      float_list {
        value: 5.900000095367432
      }
    }
  }
  feature {
    key: "PetalWidth"
    value {
      float_list {
        value: 2.0999999046325684
      }
    }
  }
  feature {
    key: "SepalLength"
    value {
      float_list {
        value: 7.099999904632568
      }
    }
  }
  feature {
    key: "SepalWidth"
    value {
      float_list {
        value: 3.0
      }
    }
  }
}
]

Затем вы можете выполнить вывод, используя следующую команду:

curl -d '{"inputs":examples}' \
  -X POST http://localhost:8501/v1/models/1554294699:predict
Другие вопросы по тегам