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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Caffe

Caffeは、深層学習に用いられるオープンソースフレームワークの一つです。C++で実装されており、C++/Python/MATLABで用いることができます。画像認識に特化しており、動作も早い点が特徴。GUPにも対応しています。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Q&A

解決済

1回答

840閲覧

pythonの配列を大きい順に並べて添え字とともに表示したい

kaffe-marsh

総合スコア13

Caffe

Caffeは、深層学習に用いられるオープンソースフレームワークの一つです。C++で実装されており、C++/Python/MATLABで用いることができます。画像認識に特化しており、動作も早い点が特徴。GUPにも対応しています。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

1グッド

0クリップ

投稿2018/08/02 05:09

編集2018/08/02 05:12

CaffeとCIFAR-10を用いて学習を行い、未知の画像の判別を行いたいと思っています。

SlideShare(https://www.slideshare.net/yasuyukisugai/deep-learningcaffe)に載っている以下のpythonのコードを参考にしているのですが

python

1import sys 2import caffe 3from caffe.proto import caffe_pb2 4import numpy 5 6cifar_map = { 7 0: "airplane", 8 1: "automobile", 9 2: "bird", 10 3: "cat", 11 4: "deer", 12 5: "dog", 13 6: "frog", 14 7: "horse", 15 8: "ship", 16 9: "truck" 17} 18 19mean_blob = caffe_pb2.BlobProto() 20with open('Caffe/examples/cifar10/mean.binaryproto') as f: 21 mean_blob.ParseFromString(f.read()) 22 23mean_array = numpy.asarray(mean_blob.data, dtype=numpy.float32).reshape( 24 (mean_blob.channels, mean_blob.height, mean_blob.width) 25) 26 27classifier = caffe.Classifier( 28 'Caffe/examples/cifar10/cifar10_quick.prototxt', 29 'Caffe/examples/cifar10/cifar10_quick_iter_4000.caffemodel', 30 mean=mean_array, 31 raw_scale=255) 32 33 34image = caffe.io.load_image(sys.argv[1]) 35predictions = classifier.predict([image], oversample=False) 36answer = numpy.argmax(predictions) 37print(predictions) 38print(str(answer) + ":" + cifar_map[answer])

最後の部分で出力されるのは一番可能性が高いであろうラベルの名前のみです。
その上の部分で確率の一覧が出力されるのですが、これを大きい順にラベルの番号もしくは名前と一緒に出力するようにするためにはどのようなコードにすればよいのでしょうか?

一番目に高い確率の数字 ラベルの番号もしくは名前
二番目に高い確率の数字 ラベルの番号もしくは名前



最も低い確率の数字 ラベルの番号もしくは名前

上記のような形にしたいです。
argmaxでは配列の中で数字(確率)が一番大きいものの添え字が返されていると認識しています。

pythonはほとんど触ったことがありません。ご教授お願い致します。

114514810👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

np.argsortを使うと、昇順のインデックスが取得できます。降順は(オプション引数などの制御での)ストレートな方法はなさそうです。

Python

1# 昇順 2answers = np.argsort(predictions) 3 4# 降順 5answers = np.argsort(-predictions)

投稿2018/08/02 05:20

tachikoma

総合スコア3601

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

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

kaffe-marsh

2018/08/05 03:41

表示できました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問