2017-08-22 4 views
0

CaffeでImageNet Resnet-50を使用すると、1000次元のベクトルが得られます。このベクトルのインデックスをWordnet 3.0 synset識別子に変換する簡単な方法はありますか?例えば、415: 'bakery、bakeshop、bakehouse'は「n02776631」ですか?WordNet 3.0 synsetetsへのImageNetインデックス

私は同様の質問、Get ImageNet label for a specific index in the 1000-dimensional output tensor in torchは、インデックスに関連付けられている人間が読めるラベルについて尋ねてきたと答えは、このURLで利用可能なインデックス・ツー・ラベルマッピングを指摘していることに注意してください:からhttps://gist.github.com/maraoz/388eddec39d60c6d52d4

人間が読めるラベルこのページでは、ラベルとシンセットのマッピングを使ってWordnet synsetの識別子を見つけることができます:http://image-net.org/challenges/LSVRC/2015/browse-synsetsしかし、これは既に完了しているのでしょうか?

答えて

0

マッピングがhttps://gist.github.com/maraoz/388eddec39d60c6d52d4http://image-net.org/challenges/LSVRC/2015/browse-synsetsからのデータでは簡単のようです:

{0: {'id': '01440764-n', 
    'label': 'tench, Tinca tinca', 
    'uri': 'http://wordnet-rdf.princeton.edu/wn30/01440764-n'}, 
1: {'id': '01443537-n', 
    'label': 'goldfish, Carassius auratus', 
    'uri': 'http://wordnet-rdf.princeton.edu/wn30/01443537-n'}, 
2: {'id': '01484850-n', 
    'label': 'great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias', 
    'uri': 'http://wordnet-rdf.princeton.edu/wn30/01484850-n'}, 
... 

は、完全なファイルのためのhttps://gist.github.com/fnielsen/4a5c94eaa6dcdf29b7a62d886f540372を参照してください。

このマッピングが実際に正しいかどうかは十分に確認していません。

このマッピングを用いて構築された:

import ast 
from lxml import html 
import requests 
from pprint import pprint 

url_index = ('https://gist.githubusercontent.com/maraoz/' 
      '388eddec39d60c6d52d4/raw/' 
      '791d5b370e4e31a4e9058d49005be4888ca98472/gistfile1.txt') 
url_synsets = "http://image-net.org/challenges/LSVRC/2014/browse-synsets" 

index_to_label = ast.literal_eval(requests.get(url_index).content) 
elements = html.fromstring(requests.get(url_synsets).content).xpath('//a') 

label_to_synset = {} 
for element in elements: 
    href = element.attrib['href'] 
    if href.startswith('http://imagenet.stanford.edu/synset?wnid='): 
     label_to_synset[element.text] = href[42:] 

index_to_synset = { 
    k: { 
     'id': label_to_synset[v] + '-n', 
     'label': v, 
     'uri': "http://wordnet-rdf.princeton.edu/wn30/{}-n".format(
      label_to_synset[v]) 
    } 
    for k, v in index_to_label.items()} 


pprint(index_to_synset) 
関連する問題