質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

2回答

3644閲覧

list index out of rangeのエラーで困っています。

prpl

総合スコア13

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/04/12 09:17

編集2022/01/12 10:55

python

1import os 2import re 3import tensorflow as tf 4 5base_dir='/tmp/imagenet' 6 7def main(argv=None): 8 node_lookup=node_dict() 9 with tf.gfile.FastGFile(os.path.join(base_dir,'classify_image_graph_def.pb'),'rb') as f: 10 graph_def=tf.GraphDef() 11 graph_def.ParseFromString(f.read()) 12 tf.import_graph_def(graph_def,name='') 13 image_data=tf.gfile.FastGFile(os.path.join(base_dir,'cropped_panda.jpg'),'rb').read() 14 with tf.Session() as sess: 15 softmax_tensor=sess.graph.get_tensor_by_name('softmax:0') 16 predictions=sess.run(tf.squeeze(softmax_tensor),feed_dict={ 17 'DecodeJpeg/contents:0':image_data 18 }) 19 top_k=predictions.argsort()[-3:][::-1] 20 for none_id in top_k: 21 human_string=node_lookup[node_id] 22 score=predictions[node_id] 23 print('%s(score=%.5f)'%(human_string,score)) 24 25def node_dict(): 26 label_lookup_path=os.path.join(base_dir,'imagenet_2012_challenge_label_map_proto.pbtxt') 27 uid_lookup_path=os.path.join(base_dir,'imagenet_synset_to_human_label_map.txt') 28 29 uid_to_human={} 30 p=re.compile(r'[n¥d]*[¥S,]*') 31 for line in tf.gfile.GFile(uid_lookup_path).readline(): 32 parsed_items=p.findall(line) 33 uid=parsed_items[0] 34 human_string=parsed_items[2] 35 uid_to_human[uid]=human_string 36 node_id_to_uid={} 37 for lie in tf.gfile.GFile(label_lookup_path).readline(): 38 if line.startswith('target_class:'): 39 target_class=int(line.split(':')[1]) 40 if line.startswith('target_class_string:'): 41 target_class_string=line.split(':')[1] 42 node_id_to_uid[target_class]=target_class_string[1:-2] 43 node_id_to_name={} 44 for key,val in node_id_to_uid.items(): 45 name=uid_to_human[val] 46 node_id_to_name[key]=name 47 return node_id_to_name 48 49if __name__=='__main__': 50 tf.app.run() 51

画像認識アプリを作ろうとしていましたが、以下のようなエラーが発生してしまいました。
File "inception.py", line 8, in main
node_lookup=node_dict()
File "inception.py", line 34, in node_dict
human_string=parsed_items[2]
IndexError: list index out of range
こんな感じでエラーが出てしまいます。
どうしたら良いですか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

can110

2019/04/12 09:21

提示ソースコード中にエラー表示されている「human_string=parsed_items[3]」が存在しません。 提示コードはエラー発生時の実行コードでしょうか?
prpl

2019/04/12 09:24

human_string=parsed_items[2]ですね。。 保存とコピーのタイミングがズレてしまっていました。
guest

回答2

0

提示コード内容を把握していないので不具合の根本的な原因は分かりませんが、単にエラーを回避するだけなら
if len(parsed_item) >= 3: human_string=parsed_items[2]でできます。

投稿2019/04/12 09:44

can110

総合スコア38233

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

prpl

2019/04/12 09:53

回答ありがとうございます。 その文はどの辺に入れれば良いのですか?
can110

2019/04/12 09:55

元ソースコードでhuman_string=parsed_items[2]と書いてある1行を、回答のように修正すればよいです。
guest

0

示されているコードとエラーコードが一致していないのと、データ等がないので詳しくはわかりませんが、p.findall(line)で4つ以上の要素が出ないとparsed_items[3]はエラーになります。

投稿2019/04/12 09:23

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

prpl

2019/04/12 09:54

回答ありがとうございます。 どこを変えれば良さそうですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問