Как найти родительский класс предсказания VGG16?

Я использую модель vgg на основе keras в качестве классификатора изображений. С этой веб-страницы:

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

Но мне интересно узнать родительскую категорию предсказания. Например, если модель предсказывает собаку, я хотел бы знать, что ее родительская категория - животное. Я не знаю, есть ли способ использовать дерево Imagenet для этой проблемы?


person MRM    schedule 15.11.2019    source источник


Ответы (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)
person xenteros    schedule 15.11.2019
comment
спасибо за Ваш ответ. Как я могу проверить имя класса imagenet с помощью wnid? - person MRM; 15.11.2019
comment
@MaryamRahmaniMoghaddam обновил ответ. Не стесняйтесь голосовать за ответ, когда он полезен, и отмечать его как решение, если он решает вашу проблему. - person xenteros; 15.11.2019
comment
но как я могу проверить, является ли какой-либо из этих родителей настоящим классом ImageNet? На основании вашего ответа мы можем получить только метку родительской категории в WordNet. - person MRM; 15.11.2019
comment
image-net.org/archive/words.txt содержит сопоставления. Это то, что вы, возможно, ищете. Не стесняйтесь продолжать спрашивать. Постараюсь ответить завтра утром по центральноевропейскому летнему времени - person xenteros; 15.11.2019
comment
Я думаю, что моим окончательным ответом было бы создание дерева на основе image-net.org/ archive / words.txt, а затем выполнить обход к корню. - person xenteros; 17.11.2019
comment
@ xenteros, спасибо за вашу помощь. Есть предложения, как построить это дерево? - person MRM; 19.11.2019