我面临的问题是我需要训练一个带有“maincategories”和“subategories”的张量流图。
我已经知道如何使用“maincategories”完全训练图表。
例如,我有3种不同的动物类型:猫,狗和大象。
如果我训练带有图片的图表到这3种类型,它将返回3种类型的分数,如:
cat 0,7
狗0,3
elephant 0,02
我想要的是训练这些类型的3种类型和子类别,例如:
猫:白色,肥胖,...... 狗:哈士奇,......当我现在用这个图表对图像进行分类时,我希望得到一个带有maincategories和子类别的输出,如下所示:
cat:0,7 - >白色:0,3 - >脂肪:0,5
狗:0,2 .....目前,我看到的唯一方法是使用主要类别训练图表,并使用子类别训练所有主要类别的单个图表,然后编写如下代码:
if name=='cat' and score>=0,7:
classify again with catgraph and get results
在该示例中,catgraph将被训练为具有不同类型的cattypes。
然而,这并不是非常优雅,我希望有更好的方法来做到这一点。
我感谢你能给我的任何帮助。
〜喵
答案 0 :(得分:0)
你可以训练一个带有两个输出的图形,除了最后一层(或者你喜欢的图层)之外的所有内容。然后你会得到每个的(比如)logloss,并根据损失的总和进行优化。如果您受到网络学习能力的束缚,您可能需要权衡一次损失。
请记住在摘要中跟踪两个损失以便于可视化。您可以将损失添加到损失集合中。
答案 1 :(得分:0)
您必须单独训练子类别。将--image_dir
指向子类别的根目录。注意:这里引用的子类别是子文件夹。然后像使用主类别一样获取每个子类别的输出。我希望这会有所启发。您可以参考Tensorflow image retraining