Как объединить слои керас за последнюю ось - PullRequest
0 голосов
/ 06 мая 2018

Я попытался объединить слои кераса за последнюю ось.

concat_layer = keras.layers.concatenate([layer1,layer2],axis=3);

Обе формы layer1 и layer2 обе (?, 7,7), сейчас я хочу, чтобы он стал (?, 7,7,2), а не (?, 7,14). Если я написал как axis = 3, он возвращает «IndexError: индекс назначения списка вне диапазона» ...

Что мне делать? Большое вам спасибо!

Ответы [ 3 ]

0 голосов
/ 09 мая 2018

Keras backend имеет операцию expand_dim , которую вы можете использовать со слоем Lambda . Попробуйте:

import keras.backend as K
from keras.layers import Lambda, concatenate

layer1 = Lambda(lambda x: K.expand_dims(x, axis=3))(layer1)
layer2 = Lambda(lambda x: K.expand_dims(x, axis=3))(layer2)
concat_layer = concatenate([layer1, layer2], axis=3)
0 голосов
/ 26 марта 2019

Измените слой до требуемого размера, а затем используйте добавленную ось для объединения

from keras.layers import Reshape
from keras.layers.merge import concatenate

layer1 = Reshape((7, 7, 1))(layer1)
layer2 = Reshape((7, 7, 1))(layer2)
concat_layer = concatenate([layer1, layer2], axis=3)
0 голосов
/ 06 мая 2018

Вы можете использовать keras.backend.stack, например ::

keras.backend.stack([layer1,layer2],axis=-1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...