【问题标题】:How to perform a multi label classification with tensorflow? [closed]如何使用 tensorflow 执行多标签分类? [关闭]
【发布时间】:2017-07-01 16:00:41
【问题描述】:

我是 tensorflow 新手,想知道是否有任何关于具有多个网络输出的多标签分类的教程或示例。

我问这个是因为我有一个图像集合,其中每个图像可以属于几个类,我的输出需要每个类的分数。

我也不知道张量流是否遵循图像和类的某些文件模式,所以如果有人有一些例子,它会很方便。

谢谢。

【问题讨论】:

    标签: tensorflow deep-learning multilabel-classification


    【解决方案1】:

    最简单(也是合理)的方法是训练一个分类网络,然后移除 softmax 层并用 sigmoid 向量替换它。这样您就可以拥有多个激活值为 1 的单位。

    您可以查看on TF-slim 分类网络的示例。在datasets 路径下,您将找到有关如何为图像和类准备TFExample“文件模式”的示例

    【讨论】:

      【解决方案2】:

      您还可以尝试使用 Label Powerset 方法将问题从多标签分类转换为多类分类。标签 Powerset 转换将训练集中证明的每个标签组合视为不同的类,并构造一个多类分类器的实例 - 并在预测之后将分配的类转换回多标签案例。它在 tensorflow Estimator 上的 scikit-multilearn 和 scikit-compatibility 包装器中提供,或者通过 input_fn 或使用 skflow 提供。然后将其插入LabelPowerset 的实例中。

      代码如下:

      from skmultilearn.problem_transform import LabelPowerset
      import tensorflow.contrib.learn as skflow
      
      # assume data is loaded using
      # and is available in X_train/X_test, y_train/y_test
      
      # initialize LabelPowerset multi-label classifier
      # with tensor flow DNN base classifier
      classifier = LabelPowerset(skflow.TensorFlowDNNClassifier(OPTIONS))
      
      # train
      classifier.fit(X_train, y_train)
      
      # predict
      predictions = classifier.predict(X_test)
      

      【讨论】:

      • 感谢您的回答!我有点迷失的是我如何将我的图像与课程联系起来。在 tensorflow 的文档中,我没有找到示例类型。你知道如何将我的图像与课程联系起来吗?在我的情况下,我认为它会是这样的: Image1 class1 Image1 class2 Image2 class5 Image 2 class1 Image3 class 4 等等..
      【解决方案3】:

      大多数解决方案是指 sigmoid 损失,而 sigmoid 在我的情况下确实可以通过 tensorflow 中的tf.nn.sigmoid_cross_entropy_with_logits(labels,logits) 很好地解决多标签分类问题。

      但是,当我处理类不平衡问题时,负面案例远多于正面案例,我发现我编辑的软符号损失比 sigmoid 效果好得多。将调整系数gamma 添加到标签以将负类的梯度降低 3/4。

      def unbalance_softsign_loss(labels, logits):
          gamma = 1.25 *labels - 0.25 
          res = 1 - tf.log1p( gamma*logits/(1+ tf.abs(logits)) )
      
          return res 
      

      其中标签是多热编码向量,例如 [0, 1, 0, 1, 0], logits ~ (-inf, inf)

      【讨论】:

      • 您拥有多少个独特的标签集?对于我的案例 35 [0,1,0,0,0,...35th col index] 及以上“不平衡软符号损失”效果好吗?能否提供基础参考论文?
      猜你喜欢
      • 1970-01-01
      • 2017-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-27
      • 1970-01-01
      • 2021-10-04
      相关资源
      最近更新 更多