【问题标题】:Tensorflow python classification training with subcategories带有子类别的 TensorFlow python 分类训练
【发布时间】:2017-07-01 15:04:24
【问题描述】:

我面临的问题是我需要用“主类别”和“子类别”训练一个张量流图。

我已经知道如何使用“maincategories”完全训练图表。

例如,我有 3 种不同的动物类型:猫、狗和大象。

如果我为这 3 种类型训练带有图片的图表,它将返回 3 种类型的分数,例如:

猫 0,7

狗 0,3

大象 0,02

我想要的是训练这 3 种类型和这些类型的子类别,例如:

猫:白,胖,...

狗:哈士奇,...

当我现在用这个图对图像进行分类时,我想得到一个包含主类别和子类别的输出,如下所示:

猫:0,7 -> 白色:0,3 -> 脂肪:0,5

狗:0,2 .....

目前我看到的唯一方法是用主类别训练一个图,并用子类别为所有主类别训练单个图,然后编写如下代码:

if name=='cat' and score>=0,7:
  classify again with catgraph and get results

在示例中,catgraph 将使用不同的 cattype 作为类别进行训练。

然而,这不是很优雅,我希望有更好的方法来做到这一点。

我很感谢你能给我的任何帮助。

~喵喵

【问题讨论】:

    标签: python tensorflow classification


    【解决方案1】:

    您可以训练具有两个输出的图形,共享除最后一层(或您喜欢的层)之外的所有内容。然后你会有一个(比如说)对数损失,并针对损失的总和进行优化。如果您受到网络学习能力的限制,您可能需要权衡一种损失而不是另一种损失。

    请记住在摘要中跟踪两个损失,以便于可视化。您可以将损失添加到损失集合中。

    【讨论】:

      【解决方案2】:

      您必须单独训练子类别。将--image_dir 指向子类别的根。注意:这里指的子类别是子文件夹。然后像获取主类别一样获取每个子类别的输出。我希望这能有所启发。可以参考Tensorflow image retraining

      【讨论】:

        猜你喜欢
        • 2016-10-06
        • 2018-04-10
        • 2017-04-14
        • 2020-10-05
        • 2017-05-23
        • 2020-01-30
        • 1970-01-01
        • 1970-01-01
        • 2013-04-11
        相关资源
        最近更新 更多