我正在尝试解决多标签图像分类问题,为此我有图像数据,但我也有一些其他特征,例如性别等,但问题是我将在测试期间获得这些信息,换句话说,在测试期间仅将提供图像信息。
我的问题是,即使我在测试过程中没有这些信息,我如何使用这些额外的功能来帮助我的图像模型(即卷积神经网络)?
任何建议都会有帮助。提前致谢。
这是一个真正开放式的问题。我可以为您提供一些关于如何运作的一般准则。
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
拥有可以组合不同输入以产生一种输出的工具。开放式的部分是架构。
现在您可能应该将
image
传递给 CNN
,然后使用 merge
输出 text
。您必须调整确切的规范,例如如何处理每个输入、您的 merge
方法以及如何处理组合输出。
使用
merge
的一个很好的例子是 here,其中 GAN 以图像的形式给出潜在噪声,同时也给出一个标签来确定它应该生成哪种类型的图像。 discriminator
和 generator
都利用 multiply
合并层来组合它们的输入。