Как я могу создать локально связанный слой с локально связанным и плотным родительским слоями? - PullRequest
1 голос
/ 10 июля 2019

У меня в настоящее время есть сеть ( изображение игрушечного примера ) с двумя входными слоями. in1 - это короткий плоский вектор значений, а in2 - 27-канальное изображение. Я хочу, чтобы моя сеть была структурирована на локально связанных слоях, но я не знаю хорошего способа посыпать данные in1 с помощью in2. В настоящее время я выравниваю ветвь in2 после нескольких слоев, объединяюсь с in1 и добавляю плотные слои вперед.

Как я могу плотно представить данные in1, поддерживая локально подключенную архитектуру? Приведенное выше изображение показывает эту цель с красной стрелкой.

Одним из возможных решений, которое я придумал, является копирование вектора in1 в виде каналов в in2 так, чтобы измерение in2 было width * height * (num_original_channels + len(in1) ). Это кажется не элегантным, потому что это будет копировать in1 много раз. Должен быть лучший способ.

Я новичок в keras, поэтому, пожалуйста, простите мой шаткий словарный запас. Кроме того, это игрушечный пример, просто чтобы проиллюстрировать мою идею, поэтому могут быть некоторые другие / не связанные архитектурные критические замечания.

Заранее спасибо за любой совет!

fwiw, вот код, который я использую:

input1 = Input( ... ) #small flat vec
input2 = Input( ... ) #deep picture

pre = Reshape( ... )( input2 )
l1 = LocallyConnected2D( ... )( pre )
l2 = LocallyConnected2D( ... )( l1 )
l3 = LocallyConnected2D( ... )( l2 )
flat = Flatten( ... )( l3 )
merge = tensorflow.keras.layers.concatenate( [flat, input1], ... )
l4 = Dense( ... )( merge )
l5 = Dense( ... )( l4 )
output = Dense( ... )( l5 )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...