如何连接不同的层输出以将其作为输入输入到Tensorflow中的新层?

问题描述 投票:1回答:1

我是Tensorflow和Python的新手。我已经建立了一个多层网络,并且已经对其进行了预培训。现在,我想在第一个旁边建立另一个多层网络。第一个网络的权重已冻结,我想将从第一个网络获得的特征与新网络层的常规输入连接起来。如何将第一个网络中特定层的输出与该网络的输入连接起来,并提供新网络的层?

python tensorflow concatenation layer
1个回答
0
投票

下面是连接具有不同输入形状的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
__________________________________________________________________________________________________

如果以上答案不是您想要的,那么将要求您共享模型的伪代码或流程图以更好地回答。

© www.soinside.com 2019 - 2024. All rights reserved.