我是Tensorflow和Python的新手。我已经建立了一个多层网络,并且已经对其进行了预培训。现在,我想在第一个旁边建立另一个多层网络。第一个网络的权重已冻结,我想将从第一个网络获得的特征与新网络层的常规输入连接起来。如何将第一个网络中特定层的输出与该网络的输入连接起来,并提供新网络的层?
下面是连接具有不同输入形状的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
__________________________________________________________________________________________________
如果以上答案不是您想要的,那么将要求您共享模型的伪代码或流程图以更好地回答。