分别在4张图像上进行卷积

时间:2018-07-11 15:29:54

标签: python tensorflow keras conv-neural-network

我有一个数据集,每个数据点都有4个彼此相关的图像(每个图像的像素大小不同)。我想对它们分别进行卷积,然后合并4张图像的信息并将其馈送到1个密集网络。如何在keras功能API中做到这一点?

我还有其他10个不是图像的功能。我打算将其直接馈送到网络的密集端。

所以我想要的是:

4 independent conv layers
flatten 
concatenate 
Dense layers
1 Output

如何以这种方式向keras提供输入?

1 个答案:

答案 0 :(得分:3)

根据您提供的描述,我认为这是您要寻找的:

input_im1 = Input(...)
input_im2 = Input(...)
input_im3 = Input(...)
input_im4 = Input(...)

conv_im1 = Conv2D(...)(input_im1)
conv_im2 = Conv2D(...)(input_im2)
conv_im3 = Conv2D(...)(input_im3)
conv_im4 = Conv2D(...)(input_im4)

concat_conv = concatenate([conv_im1,conv_im2,conv_im3,conv_im4])
flatten_conv = Flatten()(concat_conv)
input_feat = Input(...)
concat_conv_feat = concatenate([flatten_conv, input_feat])

output = Dense(...)(concat_conv_feat)

model = Model([input_im1,input_im2,input_im3,input_im4,input_feat], output)

但是,我不知道输入图像的大小和每个卷积层的参数。因此,您可能需要修改上面的代码,以使其完全符合您的要求。