Я пытаюсь реплицировать сеть, описанную по этой ссылке: https://arxiv.org/pdf/1806.07492.pdf. До сих пор мне удалось воспроизвести патч-сети модели, так что теперь у меня есть 9 моделей входного размера (32,32,3) каждая.
Однако следующий шаг - объединить эти 9 модели в единую, чтобы получить единую (96,96,3) входную сеть. Идея состоит в том, что из 27 нейронов первого слоя первые 3 соответствуют предварительно обученной модели первого патча и так далее. Вот изображение того, как это должно получиться (каждая цветная строка - это другая модель): Окончательная объединенная модель
На этом изображении каждая строка перед полностью подключенным слоем представляет предварительно обученный модель со следующими характеристиками: (32,32,3) архитектура
Как видите, эта сеть анализирует изображения (32,32,3). Однако полная модель должна соответствовать этой структуре, которая использует модель (96,96,3): (96,96,3) архитектура
У меня уже есть (32,32 , 3) модели в их соответствующем файле hdf5, но я не знаю, как объединить их в одну модель, чтобы получить модель размера (96,96,3). Я попытался использовать функцию concatenate
Keras, но получил сообщение об ошибке, в котором говорилось, что мои входные данные должны быть тензорами.
Вот код, который я использовал:
in1 = Input(shape=(32,32,3))
model_patch1 = load_model('patch1.hdf5')
in2 = Input(shape=(32,32,3))
model_patch2 = load_model('patch2.hdf5')
in3 = Input(shape=(32,32,3))
model_patch3 = load_model('patch3.hdf5')
in4 = Input(shape=(32,32,3))
model_patch4 = load_model('patch4.hdf5')
in5 = Input(shape=(32,32,3))
model_patch5 = load_model('patch5.hdf5')
in6 = Input(shape=(32,32,3))
model_patch6 = load_model('patch6.hdf5')
in7 = Input(shape=(32,32,3))
model_patch7 = load_model('patch7.hdf5')
in8 = Input(shape=(32,32,3))
model_patch8 = load_model('patch8.hdf5')
in9 = Input(shape=(32,32,3))
model_patch9 = load_model('patch9.hdf5')
model_final_concat = Concatenate(axis=-1)([model_patch1, model_patch2,
model_patch3, model_patch4, model_patch5, model_patch6, model_patch7,
model_patch8, model_patch9])
model_final_dense_1 = Dense(1, activation='sigmoid')(model_final_concat)
lsCnn_faces = Model(inputs=[in1,in2,in3,in4,in5,in6,in7,in8,in9],
outputs=model_final_dense_1) lsCnn_faces.summary()
Any помощь будет очень признательна.