如何找到VGG16预测的父类?

时间:2019-11-15 07:30:55

标签: python-3.x keras vgg-net imagenet

我正在使用基于keras的vgg模型作为图像分类器。在此网页上:

https://machinelearningmastery.com/use-pre-trained-vgg-model-classify-objects-photographs/

但是我很想找出预测的父类别。例如,如果模型预测出一条狗,我想知道它的父类别是动物。 我不知道是否可以使用Imagenet树来解决此问题?

1 个答案:

答案 0 :(得分:1)

ImageNet使用WordNet创建类的层次结构。您可以通过以下方式访问对象同义词集:

import nltk
from nltk.corpus import wordnet

nltk.download('wordnet')
dog = wordnet.synsets('dog')[0]

要访问dog的父母,请致电:

dog.hypernyms()

它可能会返回多个结果,这是有问题的。

您现在可以做的是检查此父级中的任何一个是否为实际的ImageNet类。要获取符号集的wnid,只需调用dog.offset()

要撤消该过程:

from nltk.corpus import wordnet as wn
wn.synset_from_pos_and_offset('n',2084071)