Как соединить скрытый слой ResNet50 с входом другой модели? - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь объединить выходные данные скрытого слоя в ResNet с входными данными другой модели, но получаю следующую ошибку:

ValueError: Выходные тензоры в модель должны быть выходными даннымиa Keras Layer (таким образом, удерживая метаданные прошлого слоя)

Я использую слой Concatenate из Keras, как рекомендовано в Как объединить два слоя в keras? , однако это былоне работа.Что я могу пропустить?Должен ли я добавить плотный слой к нему тоже?Идея состоит в том, чтобы не изменять второй вход, пока он не будет соединен с первым входом (объединенный вход будет входом третьей модели).

resnet_features = resnet.get_layer('avg_pool').output
model2_features = Input(shape=(None, 32))
all_features = Concatenate([resnet_features, model2_features])

mixer = Model(inputs=[resnet.input, model2_features], 
                             outputs=all_features)

1 Ответ

0 голосов
/ 14 февраля 2019

Похоже, вам не хватает двух скобок на слое конкатенации.Это должно выглядеть так:

all_features = Concatenate()([resnet_features, model2_features])

Более того, вы должны убедиться, что формы resnet_features и model2_features одинаковы, за исключением оси конкатенации, так как иначе вы не сможетеобъединить их.

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