Как объединить различные выходы слоя для подачи в качестве ввода на новый слой в Tensorflow? - PullRequest
1 голос
/ 24 апреля 2020

Я новичок в Tensorflow и Python. Я построил многоуровневую сеть, и я ее предварительно обучил. Теперь я хочу построить еще одну многослойную сеть рядом с первой. Веса первой сети заморожены, и я хочу объединить функции, которые я получил от первой сети, с обычным вводом слоя новой сети. Как я могу объединить выходные данные определенного слоя c в первой сети со входом в эту сеть и передать слой новой сети?

1 Ответ

0 голосов
/ 08 мая 2020

Ниже приведен простой пример объединения 2 входных слоев с различной формой ввода и подачи на следующий слой.

import tensorflow.keras.backend as K
import tensorflow as tf
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Input, concatenate, Conv2D, ZeroPadding2D, Dense
from tensorflow.keras.optimizers import Adagrad

input_img1 = Input(shape=(44,44,3))
x1 = Conv2D(3, (3, 3), activation='relu', padding='same')(input_img1)

input_img2 = Input(shape=(34,34,3))
x2 = Conv2D(3, (3, 3), activation='relu', padding='same')(input_img2)
# Zero Padding of 5 at the top, bottom, left and right side of an image tensor
x3 = ZeroPadding2D(padding = (5,5))(x2)

# Concatenate works as layers have same size output
x4 = concatenate([x1,x3])

output = Dense(18, activation='relu')(x4)

model = Model(inputs=[input_img1,input_img2], outputs=output)

model.summary()

Вывод -

Model: "model"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_4 (InputLayer)            [(None, 34, 34, 3)]  0                                            
__________________________________________________________________________________________________
input_3 (InputLayer)            [(None, 44, 44, 3)]  0                                            
__________________________________________________________________________________________________
conv2d_3 (Conv2D)               (None, 34, 34, 3)    84          input_4[0][0]                    
__________________________________________________________________________________________________
conv2d_2 (Conv2D)               (None, 44, 44, 3)    84          input_3[0][0]                    
__________________________________________________________________________________________________
zero_padding2d_1 (ZeroPadding2D (None, 44, 44, 3)    0           conv2d_3[0][0]                   
__________________________________________________________________________________________________
concatenate_1 (Concatenate)     (None, 44, 44, 6)    0           conv2d_2[0][0]                   
                                                                 zero_padding2d_1[0][0]           
__________________________________________________________________________________________________
dense (Dense)                   (None, 44, 44, 18)   126         concatenate_1[0][0]              
==================================================================================================
Total params: 294
Trainable params: 294
Non-trainable params: 0
__________________________________________________________________________________________________

Если ответ выше не тот вы ищете, а затем попросили бы вас поделиться псевдокодом или блок-схемами моделей, чтобы ответить лучше.

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