【问题标题】:Use both images and other features for classification使用图像和其他特征进行分类
【发布时间】:2018-07-06 11:39:27
【问题描述】:

我想同时使用图像和其他特征来对图像进行分类。我正在使用 CNN 对图像进行分类。但是如何将其他功能集成到我的模型中? 就像我对图像进行分类一样,我拥有的特征是:

1.图片

2.年龄

3.性

一种天真的方法是:

x_combined = np.vstack((age_sex,x)) 

但是将 x_combined 输入到我的 CNN 模型将无济于事,因为这些特征不是图像的一部分。

我想做的是同时使用年龄和性别以及图像进行分类。我正在使用 keras 创建我的模型。如何创建我的模型?

【问题讨论】:

    标签: machine-learning computer-vision keras


    【解决方案1】:

    除了@janu777 建议的第二种方法之外,您还可以根据不同的性别和年龄范围(-10 岁、11-18、19-30、31-60、61+)训练多个 CNN。在测试期间,您只需选择年龄和性别的特定模型。

    如果来自不同年龄和性别的数据可能呈现出专门的 CNN 可以学习的不同模式,这背后的基本原理是什么。理论上,单个 CNN 应该能够学习数据中的所有这些模式,但这需要大量的训练样本,而这些样本并不总是可用的。

    这个想法的一个很大的缺点是,您需要针对您打算训练的每种性别/年龄组合的数据。缺乏代表性数据可能会使您的模型表现不佳。

    【讨论】:

      【解决方案2】:

      您可以很好地将其他特征与像素值叠加。一个好的 Conv 网络将从输入中学习模式和更好的特征。

      您也可以尝试在 Conv 网络的最后一层添加这些特征以获得输出。尝试对两者进行试验。

      【讨论】:

      • 第二种方法似乎更好。但是如何将这些 age_sex 堆叠到我的 CNN 中 Flatten() 层的输出?
      • 您可以使用 Keras 的 Concatenation layer,将 CNN 的扁平特征以及年龄和性别标签作为输入。例如,这可以被馈送到一个全连接层进行优化。
      猜你喜欢
      • 2015-01-06
      • 2012-04-19
      • 2015-12-13
      • 2018-06-27
      • 2019-08-22
      • 2021-03-26
      • 1970-01-01
      • 2016-08-20
      • 2012-03-13
      相关资源
      最近更新 更多