我有一个多输入卷积神经网络模型,该模型输入来自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/