gpt4 book ai didi

neural-network - Caffe中的多类别分类

转载 作者:行者123 更新时间:2023-12-03 22:34:28 24 4
gpt4 key购买 nike

我认为我们可能能够对执行多类别分类的某些方法编写含咖啡因的描述。

多类别分类我的意思是:输入数据包含多个模型输出类别的表示和/或可简单地归类为多个模型输出类别。

例如。包含猫和狗的图像将为猫和狗预测类别输出(理想情况下)~1,对所有其他类别输出~0。

  • 基于 this paper , this stale and closed PRthis open PR ,似乎 caffe 完全能够接受标签。这样对吗?
  • 构建这样的网络是否需要使用多个神经元(内积 -> relu -> 内积)和 softmax 层,如 page 13 of this paper ;或者 Caffe 的 ip & softmax 目前是否支持多个标签维度?
  • 当我将标签传递给网络时,哪个示例可以说明正确的方法(如果不是两者)?:

    例如。吃苹果的猫注意:Python 语法,但我使用的是 c++ 源代码。

    第 0 列 - 输入类;
    第 1 列 - 类不在输入中
    [[1,0],  # Apple
    [0,1], # Baseball
    [1,0], # Cat
    [0,1]] # Dog

    或者

    第 0 列 - 输入类
    [[1],  # Apple
    [0], # Baseball
    [1], # Cat
    [0]] # Dog

  • 如果有任何不清楚的地方,请告诉我,我将生成我要提出的问题的图片示例。

    最佳答案

    好问题。我相信这里没有单一的“规范”答案,您可能会找到几种不同的方法来解决这个问题。我会尽力展示一种可能的方式。它与您提出的问题略有不同,因此我将重新陈述问题并提出解决方案。

    问题:给定一个输入图像和一组 C类,为每个类指明它是否在图像中描绘。

    输入:在训练时间,输入是成对的图像和一个 C -dim 二进制向量指示 C 的每个类类是否存在于图像中。

    输出:给定图像,输出 C -dim 二进制向量(与您的问题中建议的第二种形式相同)。

    让 caffe 完成这项工作:为了完成这项工作,我们需要使用不同的损失修改网络的顶层。
    但首先,让我们了解 caffe 的通常使用方式,然后查看所需的更改。
    现在的情况:图像被送入网络,经过卷积/池化/...层,最后经过 "InnerProduct"层与 C输出。这些 C预测进入 "Softmax"除了最主要的类别之外,其他所有类别都受到抑制。一旦突出显示单个类 "SoftmaxWithLoss"层检查突出显示的预测类是否与地面实况类匹配。

    您需要什么:现有方法的问题是 "Softmax"基本上选择单个类的层。我建议你用 "Sigmoid" 替换它映射每个 C 的层输出到指示符中是否存在此特定类。对于培训,您应该使用 "SigmoidCrossEntropyLoss" 而不是 "SoftmaxWithloss"层。

    关于neural-network - Caffe中的多类别分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33112941/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com