Я построил классификатор Keras, который берет изображение (224,224,3) и кодировку текста (5000) и выдает один вывод.Модель отлично работает при использовании функции предсказания keras.Я сохранил модель, используя
tf.saved_model.simple_save(
sess,
export_path,
inputs={'input_image': model.input[0],'input_text': model.input[1]},
outputs={t.name:t for t in model.outputs})
Когда я запускаю ее с API Rest, она возвращает:
{u'predictions': [[nan, nan]]}
Способ отправки данных:
img = cv2.imread(image_path)
#rescale image
img = cv2.resize(img, (scale_size[0], scale_size[1]))
img = img.astype(np.float32)
img = img.astype('float32')
#subtract mean
img -= mean
text = np.load(text_path)
text = text.astype(np.float32)
payload = {
"signature_name":signature_constants.CLASSIFY_METHOD_NAME,
"instances": [
{
"input_image": img.tolist(),
"input_text": text.tolist()
}
]
}
# sending post request to TensorFlow Serving server
r = json.dumps(payload)
results = requests.post('http://localhost:9000/v1/models/<model-name>:predict', data=r)
pred = json.loads(results.content.decode('utf-8'))
print(pred)