Преобразовать class = tenorflow_serving.apis.classification_pb2.ClassificationResponse в json - PullRequest
0 голосов
/ 07 января 2019

У меня есть приложение фляги, которое принимает текстовый документ, выполняя некоторые jiggery-pokery над текстом с помощью nltk, прежде чем передать это в обслуживаемую модель тензорного потока.

Я передаю это модели с

result = stub.Classify(req, 10.0)

и верните ошибку

'TypeError: Object of type ClassificationResponse is not JSON serializable'. 

Печать из приложения Flask с использованием

print(type(result_, file-sys.stderr) 

дает мне полный класс:

class = tensorflow_serving.apis.classification_pb2.ClassificationResponse

и вывод результатов на экран кажется почти таким же, как я хотел бы, если бы это был JSON:

result {
  classifications {
    classes {
      label: "A"
      score: 48.48733901977539
    }
    classes {
      label: "B"
      score: 12.251751899719238
    }
    classes {
      label: "C"
      score: 2.919949769973755
    }
  }
}
model_spec {
  name: "my_model"
  version {
    value: 5
      }
  signature_name: "serving_default"
}

Как я могу преобразовать это в JSON, если тип объекта ClassificationResponse не совместим?

1 Ответ

0 голосов
/ 07 января 2019

Это сериализованный protobuf, вы можете использовать MessageToJson из библиотеки Python protobuf

from google.protobuf.json_format import MessageToJson

jsonObj = MessageToJson(tensorflow_serving.apis.classification_pb2.ClassificationResponse)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...