我正在尝试解决一个多标签图像分类问题,对于这个问题,我有图像数据,但我还有一些其他特征,如性别等,但问题是我会在测试期间获得这些信息,换句话说,在测试期间只会提供图像信息。
我的问题是,即使我在测试期间不会获得此信息,我如何使用这些额外的功能来帮助我的卷积神经网络图像模型?
任何建议都会有所帮助。提前谢谢。
这是一个非常开放的问题。我可以给你一些关于它如何工作的一般指导方针。
keras
模型 API 支持多个输入以及merge
层。例如,你可以有这样的东西:
from keras.layers import Input
from keras.models import Model
image = Input(...)
text = Input(...)
... # apply layers onto image and text
from keras.layers.merge import Concatenate
combined = Concatenate()([image, text])
... # apply layers onto combined
model = Model([image, text], [combined])
这样,您就可以拥有一个model
,该采用多个输入,这些输入可以使用所有数据源。keras
具有组合不同输入以产生一个输出的工具。这变得开放的部分是架构。
现在你可能应该通过CNN
传递image
,然后用text
merge
输出。您必须调整确切的规格,例如如何处理每个输入、merge
方法以及如何处理组合输出。
使用merge
的一个很好的例子是这里,其中GAN以图像的形式被赋予潜在噪声,但也有一个标签来确定它应该生成什么样的图像。discriminator
和generator
都利用multiply
合并层来组合它们的输入。