Формирование полезной нагрузки изображения из экспортированной SavedModel - PullRequest
1 голос
/ 09 апреля 2019

Я обучил модель с помощью API обнаружения объектов TF.Это автоматически экспортирует папку variables и saved_model.pb.Я запустил saved_model_cli show --dir <saved_model_path> --all и получил вывод:

MetaGraphDef with tag-set: 'serve' contains the following SignatureDefs:

signature_def['serving_default']:
  The given SavedModel SignatureDef contains the following input(s):
    inputs['serialized_example'] tensor_info:
        dtype: DT_STRING
        shape: ()
        name: tf_example:0
  The given SavedModel SignatureDef contains the following output(s):
    outputs['detection_boxes'] tensor_info:
        dtype: DT_FLOAT
        shape: (1, 40, 4)
        name: detection_boxes:0
    outputs['detection_classes'] tensor_info:
        dtype: DT_FLOAT
        shape: (1, 40)
        name: detection_classes:0
    outputs['detection_scores'] tensor_info:
        dtype: DT_FLOAT
        shape: (1, 40)
        name: detection_scores:0
    outputs['num_detections'] tensor_info:
        dtype: DT_FLOAT
        shape: (1)
        name: num_detections:0
    outputs['raw_detection_boxes'] tensor_info:
        dtype: DT_FLOAT
        shape: (1, 204800, 4)
        name: raw_detection_boxes:0
    outputs['raw_detection_scores'] tensor_info:
        dtype: DT_FLOAT
        shape: (1, 204800, 2)
        name: raw_detection_scores:0
  Method name is: tensorflow/serving/predict

signature_def['tensorflow/serving/predict']:
  The given SavedModel SignatureDef contains the following input(s):
    inputs['serialized_example'] tensor_info:
        dtype: DT_STRING
        shape: ()
        name: tf_example:0
  The given SavedModel SignatureDef contains the following output(s):
    outputs['detection_boxes'] tensor_info:
        dtype: DT_FLOAT
        shape: (1, 40, 4)
        name: detection_boxes:0
    outputs['detection_classes'] tensor_info:
        dtype: DT_FLOAT
        shape: (1, 40)
        name: detection_classes:0
    outputs['detection_scores'] tensor_info:
        dtype: DT_FLOAT
        shape: (1, 40)
        name: detection_scores:0
    outputs['num_detections'] tensor_info:
        dtype: DT_FLOAT
        shape: (1)
        name: num_detections:0
    outputs['raw_detection_boxes'] tensor_info:
        dtype: DT_FLOAT
        shape: (1, 204800, 4)
        name: raw_detection_boxes:0
    outputs['raw_detection_scores'] tensor_info:
        dtype: DT_FLOAT
        shape: (1, 204800, 2)
        name: raw_detection_scores:0
  Method name is: tensorflow/serving/predict

Затем я создал функцию прогнозирования с:

predict_fn = tf.contrib.predictor.from_saved_model(<saved_model_path>)

Теперь я застрял на построенииполезные данные изображения для отправки на это.В частности, меня смущает имя ввода serialized_example, тип ввода d DT_STRING и форма ввода ().Может быть, кто-нибудь пожелает продемонстрировать, как взять либо массив numpy, либо файл изображения jpeg и сформировать правильную полезную нагрузку для этой модели?

...