Я попробовал подход, предложенный @ user1371314, но не смог заставить его работать.Другое решение, которое сработало, - это создание тензора (вместо константы) и отображение его только с первым элементом выходного слоя при сохранении модели.Когда вы сложите это вместе, это будет выглядеть так:
# get labels names and create a tensor from it
....
label_names_tensor = tf.convert_to_tensor(label_names)
# save the model and map the labels to the output layer
tf.saved_model.simple_save(
sess,
"./saved_models",
inputs={'image': model.input},
outputs={'label' : label_names_tensor,'prediction': model.output[0]})
Когда вы сделаете прогноз после обслуживания вашей модели, вы получите следующий результат:
{
"predictions": [
{
"label": "label-name",
"prediction": 0.114107
},
{
"label": "label-name",
"prediction": 0.288598
},
{
"label": "label-name",
"prediction": 0.17436
},
{
"label": "label-name",
"prediction": 0.186366
},
{
"label": "label-name",
"prediction": 0.236568
}
]