Как правильно объединить слой Flatten и вектор объектов в Keras - PullRequest
0 голосов
/ 29 сентября 2019

Мне просто нужно объединить плоский слой и вектор объектов в Керасе.Это код:

#custom parameters
n_features = 38

vgg_model = VGGFace(include_top=False, input_shape=(224, 224, 3))
last_layer = vgg_model.get_layer('pool5').output

x = Flatten(name='flatten')(last_layer)

# feature vector
feature_vector = Input(shape = (n_features,))

conc = concatenate(([x, feature_vector]), axis=1)


layer_intermediate = Dense(128, activation='relu', name='fc6')(conc)
layer_intermediate1 = Dense(32, activation='relu', name='fc7')(layer_intermediate)
out = Dense(5, activation='softmax', name='fc8')(layer_intermediate1)

custom_vgg_model = Model(vgg_model.input, out)

Но я получаю эту ошибку:

---> 20 custom_vgg_model = Model (vgg_model.input,out)

ValueError: График отключен: невозможно получить значение для тензорного тензора («input_88: 0», shape = (?, 38), dtype = float32) на слое «input_88».Следующие предыдущие уровни были доступны без проблем: ['input_87', 'conv1_1', 'conv1_2', 'pool1', 'conv2_1', 'conv2_2', 'pool2', 'conv3_1', 'conv3_2', 'conv3_3','pool3', 'conv4_1', 'conv4_2', 'conv4_3', 'pool4', 'conv5_1', 'conv5_2', 'conv5_3', 'pool5', 'flatten']

Кстати, форма сплющенного слоя (Нет, 25088)

1 Ответ

0 голосов
/ 29 сентября 2019

Поскольку ваш feature_vector также Input.Попробуйте добавить feature_vector во входные данные при определении модели.

custom_vgg_model = Model([vgg_model.input,feature_vector], out)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...