我有一个多输入卷积神经网络模型,该模型输入来自2个数据集的2个图像,以给出一个输出,该输出是两个输入的类。这两个数据集具有相同的类。我使用了2个vgg16模型并将它们连接起来以对两个​​图像进行分类。

vgg16_model = keras.applications.vgg16.VGG16()
input_layer1= vgg16_model .input
last_layer1 = vgg16_model.get_layer('fc2').output


vgg16_model2 = keras.applications.vgg16.VGG16()
input_layer2= vgg16_model .input
last_layer2 = vgg16_model.get_layer('fc2').output


con = concatenate([last_layer1, last_layer2])  # merge the outputs of the two models
output_layer = Dense(no_classes, activation='softmax', name='prediction')(con)
multimodal_model1 = Model(inputs=[input_layer1, input_layer2], outputs=[output_layer])


我的问题是:

1-以下哪种情况代表图像如何进入模型?

一对一

database1-img1 + database2-img1

database1-img2 + database2-img2

database1-img3 + database2-img3

database1-img4 + database2-img4

......

多对多

database1-img1 + database2-img1

database1-img1 + database2-img2

database1-img1 + database2-img3

database1-img1 + database2-img4

database1-img2 + database2-img1

database1-img2 + database2-img2

database1-img2 + database2-img3

database1-img2 + database2-img4

......

2-通常在深度学习中,同时从两个数据集输入到模型的图像是否具有相同的类(标签)?

最佳答案

它是1:1映射,对于多个输出也应如此。


当您拥有诸如Model(inputs=[input_layer1, input_layer2], outputs=[output_layer])或什至Model(inputs=[input_layer1, input_layer2], outputs=[output_layer1, output_layer2])之类的模型时,您必须以相同形状的输入/输出来输入模型。
假设另一种情况-对于2个数据集的每种可能混合,您将需要具有ds1.shape[0] * ds2.shape[0]不同的标签,并且需要以某种方式对它们进行排序。这实际上是不可行的,至少不是简单的。

2.好像同一张图像没有相同的标签,但两张图像对都具有一个标签。

关于tensorflow - Keras中的多输入深度学习如何工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53242146/

10-12 06:16