Как извлечь простую модель Keras для обнаружения объектов из модели, встроенной в Object Detection API - PullRequest
0 голосов
/ 03 ноября 2019

В API обнаружения объектов TensorFlow можно указать в файле конфигурации модель кераса (например, 'ssd_mobilenet_v2_keras'), и, таким образом, встроенный экстрактор функций и блок предиктора будетбыть от tf.keras.Model. Я хотел бы создать простую модель OD Keras, используя их. Это означает, что я смогу определить экстрактор объектов, блок-предиктор и затем сделать следующее:

def keras_model(model, shape):
    input = tf.keras.Input(shape=shape)
    feature_maps = model._feature_extractor(input)
    predictions = model._box_predictor(feature_maps)
    return tf.keras.Model(inputs=input, outputs=predictions)

, когда model построен с использованием model_builder.build(model_config) (что вызовет this ).

Однако, когда я пытаюсь это сделать, я получаю следующее исключение из команды извлечения функции:

    feature_maps = model._feature_extractor(input)
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/engine/base_layer.py", line 584, in __call__
    inputs, outputs, args, kwargs)
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/engine/base_layer.py", line 1416, in _set_connectivity_metadata_
    input_tensors=inputs, output_tensors=outputs, arguments=kwargs)
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/engine/base_layer.py", line 1524, in _add_inbound_node
    arguments=arguments)
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/engine/base_layer.py", line 1732, in __init__
    self.output_shapes = [backend.int_shape(x) for x in output_tensors]
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/engine/base_layer.py", line 1732, in <listcomp>
    self.output_shapes = [backend.int_shape(x) for x in output_tensors]
  File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/keras/backend.py", line 951, in int_shape
    shape = x.shape
AttributeError: 'odict_values' object has no attribute 'shape'

Любая идея, в чем заключается проблема, или есть либолее простой способ извлечь объект обнаружения Keras для модели?

Заранее спасибо!

...