【问题标题】:Multilabel image classification: is it necessary to have training data for each combination of labels?多标签图像分类:每个标签组合是否需要有训练数据?
【发布时间】:2018-06-30 05:45:21
【问题描述】:

我想使用 keras 为多标签图像分类任务训练 CNN。但是我不确定如何准备我的培训数据。更具体地说,我想知道我是否需要训练显示两个或多个标签组合的图像,或者在单个标签上训练网络是否足够,然后它将能够检测图像中的多个标签。

我认为通过示例,我的问题会变得更加清晰:

假设我正在使用狗与猫分类数据集,并且我想构建一个模型,该模型能够将图像分类为狗或猫,或者在一张图像中同时看到两种动物。在这种情况下,我是否需要使用显示猫、狗和同时显示在一张图像中的图像来训练模型,还是仅使用仅显示猫和狗的训练图像就足够了?

【问题讨论】:

  • 我有兴趣为这个问题找到一个好的和有效的解决方案。您使用了哪种方法?

标签: machine-learning neural-network keras conv-neural-network multilabel-classification


【解决方案1】:

好吧 - 在您可能有多个类别的情况下 - 您的问题从多类别分类(将一个类别分配给图像)变为多分类(将多个决策分配给图像)。例如。鉴于您的网络示例输出应该是二维的,每个类都有单独的输出:

output = Dense(nb_of_classes, activation='sigmoid')(previous_layer)
model.compile(loss='binary_crossentropy`, ..)

如您所见 - 您实际上是在训练两个单独的分类器,而不是一个。根据我的经验 - 它应该可以正常工作,尽管有两个类的示例 - 使培训更有效率。

【讨论】:

    【解决方案2】:

    这是一个示例,说明如何使用 CNN 使用 Keras 对图像进行分类。

    https://github.com/wiamsuri/cnn-image-classifier-keras

    您可以将要分类的图像放在图像子文件夹中,以训练和测试 CNN 模型。

    【讨论】:

      猜你喜欢
      • 2020-04-09
      • 2018-03-07
      • 2017-07-22
      • 2019-05-20
      • 2016-08-26
      • 2020-12-01
      • 2021-07-29
      • 2019-07-28
      • 2021-01-26
      相关资源
      最近更新 更多