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

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

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

Chainerは、国産の深層学習フレームワークです。あらゆるニューラルネットワークをPythonで柔軟に書くことができ、学習させることが可能。GPUをサポートしており、複数のGPUを用いた学習も直感的に記述できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

689閲覧

Chainer Classifier利用時の確率出力方法について

howareyou1245

総合スコア20

Chainer

Chainerは、国産の深層学習フレームワークです。あらゆるニューラルネットワークをPythonで柔軟に書くことができ、学習させることが可能。GPUをサポートしており、複数のGPUを用いた学習も直感的に記述できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/09/01 02:37

編集2019/09/01 02:40

Chainerを利用して18万文ほどのデータの分類を行っています。
プログラムの一部を以下に記しました。

python

1train_iter = iterators.SerialIterator(train,batch) 2test_iter = iterators.SerialIterator(test,batch,False,False) 3 4class logis(chainer.Chain): 5 def __init__(self): 6 super().__init__() 7 8 with self.init_scope(): 9 self.l1 = L.Linear(None,2) 10 11 12 def forward(self,x): 13 h = F.softmax(self.l1(x)) 14 return h 15 16pred = logis() 17net = L.Classifier(pred) 18gpu_id = 0 19if gpu_id >= 0: 20 net.to_gpu(gpu_id) 21optimizer = optimizers.Adam().setup(net) 22updater = training.StandardUpdater(train_iter, optimizer, device=0) 23trainer = training.Trainer(updater, (30,'epoch'), out="a") 24 25trainer.extend(extensions.LogReport(trigger=(1, 'epoch'), log_name='log')) 26trainer.extend(extensions.PrintReport(['epoch', 'iteration', 'main/loss', 'main/accuracy', 'elapsed_time'])) 27 28trainer.run()

やりたいこと

今までは下記のようにテストデータ全体に対するAccuracyを求めていました。

test_evaluator = extensions.Evaluator(test_iter, net, device=gpu_id) results = test_evaluator() print('Test accuracy:', results['main/accuracy'])

テストデータ全体ではなく、任意の1つのデータに対してのsoftmaxの確率の出力を行いたいです。

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

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

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

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

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

Q71

2019/09/01 11:22

学習中に、テストデータ一つ一つの判定結果について表示したい、ということですか? この質問の主題は「学習中に」です。 私は、学習完了後に、(学習中のバリデーションデータとも異なる)テストデータの判定結果を表示「できる」ようにしていますが。
howareyou1245

2019/09/01 11:34

わかりづらくてすみません。 学習完了後に、一つ一つのテストデータに判定を行いたいです
guest

回答1

0

ベストアンサー

結果(モデル)の出力はできているのでしょうか。書かれているコードには、そのあたりがないですが。
していると仮定して。

書かれているコードの、optimizer=の行の上まで、ファイルを複製します。
保存してあるモデルをロードします。
テストデータを読み込み、logisに通します。
forwardの戻り値がお望みのものです。

つまり、学習器とは別に推論器を作らなければなりません。

投稿2019/09/01 11:39

編集2019/09/01 11:40
Q71

総合スコア995

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

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

howareyou1245

2019/09/01 14:04

ありがとうございます。 logisに通すというのは、logisをインスタンス化したpredに通すということでしょうか?
howareyou1245

2019/09/02 03:34

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問