Объединить два слоя с разной формой, воспроизводя SiamRPN - PullRequest
2 голосов
/ 13 марта 2019

Я пытаюсь воспроизвести эту статью SiameseRPN , используя Keras. Архитектура представлена ​​ниже. enter image description here

это в моем коде.

Template_input_shape = (127, 127, 3)
Detection_input_shape = (255, 255, 3)


// make the input
input_Template = tf.keras.Input(shape=Template_input_shape)
input_Detection = tf.keras.Input(shape=Detection_input_shape)

// make with alexNet model
processed_Template = alexNet(input_Template) // (6, 6, 256) output
processed_Detection = alexNet(input_Detection) // (22, 22, 256) output

// alexNet represente my model.

// after (if i've well understood) outputs are dispatched over a classification model and regression model


def classification_Branch(input_a, input_b, anchors=5, out=256):
    cls_x = keras.layers.Conv2D(256, kernel_size=3)(input_a.output)
    cls_z = keras.layers.Conv2D(out, kernel_size=3)(input_b.output)

cls = classification_Branch(processed_Template, processed_Detection)
rgr = regression_Branch(processed_Template, processed_Detection)

Я падаю, чтобы понять, как объединить оба cnn (cls_x с cls_z и т. Д.), Чтобы получить желаемый результат.

Keras.layers.concatenate([cls_x, cls_z])

здесь не работает, потому что форма не одинакова. кто-то может объяснить мне, как в моей ситуации я могу объединить оба cnn в один cnn с желаемым результатом.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...