この文書の現在のバージョンと選択したバージョンの差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| 
                    5_結果の出力_keras [2017/11/09] adash333 [(5)結果の出力(Keras)]  | 
                
                    5_結果の出力_keras [2018/10/07] (現在) | 
            ||
|---|---|---|---|
| ライン 16: | ライン 16: | ||
| score = model.evaluate(X_test, y_test, verbose=0) | score = model.evaluate(X_test, y_test, verbose=0) | ||
| print('Test loss:', score[0]) | print('Test loss:', score[0]) | ||
| - | |||
| - | #5 結果の出力(Keras) | ||
| print('Test accuracy:', score[1]) | print('Test accuracy:', score[1]) | ||
| </code> | </code> | ||
| - | |||
| - | 作成中。 | ||
| ライン 33: | ライン 29: | ||
| Keras2.0のインストール方法は[[windowsにkeras2.0をインストール]]をご覧下さい。 | Keras2.0のインストール方法は[[windowsにkeras2.0をインストール]]をご覧下さい。 | ||
| - | このページは、[[(3)モデル設定(Keras)]]の続きであり、今回は、モデルの学習を行っていきます。 | + | このページは、[[(4)モデル学習(Keras)]]の続きであり、今回は、結果の出力を行っていきます。 | 
| ===== 手順 ===== | ===== 手順 ===== | ||
| ライン 39: | ライン 35: | ||
| ==== 0. 前回終了時の画面 ==== | ==== 0. 前回終了時の画面 ==== | ||
| - | [[(3)モデル設定(Keras)]]終了時の、以下のような状態から始めます。 | + | [[(4)モデル学習(Keras)]]終了時の、以下のような状態から始めます。 | 
| - | {{:pasted:20171106-063759.png}} | + | {{:pasted:20171110-044806.png}} | 
| ==== 1. モデルの学習 ==== | ==== 1. モデルの学習 ==== | ||
| 以下のコードを入力して、Shift + Enterを押します。 | 以下のコードを入力して、Shift + Enterを押します。 | ||
| <code> | <code> | ||
| - | #4 モデル学習(Keras) | + | #5 結果の出力(Keras) | 
| - | history = model.fit(x_train, y_train, | + | score = model.evaluate(x_test, y_test, verbose=0) | 
| - | batch_size=batch_size, epochs=epochs, | + | print('Test loss:', score[0]) | 
| - | verbose=1, validation_data=(x_test, y_test)) | + | print('Test accuracy:', score[1]) | 
| </code> | </code> | ||
| 以下のような画面になります。 | 以下のような画面になります。 | ||
| - | {{:pasted:20171109-223753.png}} | + | {{:pasted:20171110-045243.png}} | 
| - | 3分くらい待つと、学習が終了します。 | ||
| - | {{:pasted:20171110-032455.png}} | + | model.evaluate()関数により、入力値における損失値(損失関数に(x_test, y_test)の組み合わせを入力して出てきた結果)を返します。 | 
| + | 詳細はよく分かりませんが、score[0]にlossを、score[1]にaccuracyを持つようなリストを返すようです。 | ||
| - | model.fit()関数により、モデルの学習を実行しています。 | + | lossは、おそらく、x_testの画像10000枚とその正解ラベルy_testのセットを、損失関数に入れたときの値(損失)だと思われます。(ググってもはっきりとした記載は見つけることはできませんでしたが、たぶんそれで間違いないと思います。) | 
| - | 引数については、KerasのDocumentationそのままとなりますが、以下に記載します。 | + | KerasでのModel学習の手順は上記でおしまいです。 | 
| - | ---- | + | 初めての方は、次は、<wrap hi>[[(6)学習結果の保存(Keras)]]</wrap>に進んでください。 | 
| - | x: 入力データ,Numpy 配列,あるいは Numpy 配列のリスト (モデルに複数の入力がある場合)\\ | ||
| - | y: ラベル,Numpy 配列. | ||
| - | batch_size: 整数.設定したサンプル数ごとに勾配の更新を行います。今回は、[[(3)モデル設定(Keras)]]のところで、batch_size = 128と設定していましたので、128が用いられています。 | + | ===== accuracyとlossについて ===== | 
| - | epochs: 整数で,モデルを訓練するエポック数。今回は、[[(3)モデル設定(Keras)]]のところで、epochs = 3と設定していましたので、3回学習が行われています。 | + | accuracy(全体正解率)予測測に対して答えがどのくらいあってたか | 
| - | verbose: 0とすると標準出力にログを出力しません. 1の場合はログをプログレスバーで標準出力,2 の場合はエポックごとに1行のログを出力します | + | <code> | 
| - | + | Accuracy=(TP+TN)/(TP+FP+TN+FN) | |
| - | validation_data=(x_test, y_test): ホールドアウト検証用データとして使うデータのタプル (x_val, y_val) か (x_val, y_val, val_sample_weights)。設定すると validation_split を無視します。 | + | </code> | 
| - | + | ||
| - | ---- | + | |
| - | + | ||
| - | + | ||
| - | KerasでのModel学習の手順は上記でおしまいです。 | + | |
| - | + | ||
| - | <wrap hi> | + | |
| - | 初めての方は、次は、</wrap>[[(5)結果の出力(Keras)]]<wrap hi>に進んでください。 | + | |
| - | </wrap> | + | |
| - | (参考) | + | 詳細は以下のページが参考になります。 | 
| - | Keras チュートリアル\\ | + | |
| - | sasayabaku | + | |
| - | 2017年08月16日に更新\\ | + | |
| - | https://qiita.com/sasayabaku/items/64a01363bcd5c44feb0b | + | |
| + | 2017-05-17 | ||
| + | 機械学習で使う指標総まとめ(教師あり学習編)\\ | ||
| + | http://www.procrasist.com/entry/ml-metrics | ||
| - | ===== kerasのSequentialモデルのfitメソッドについて ===== | + | ===== kerasのSequentialモデルのevaluateメソッドについて ===== | 
| https://keras.io/ja/models/sequential/\\ | https://keras.io/ja/models/sequential/\\ | ||
| - | {{:pasted:20171110-035359.png}} | + | {{:pasted:20171110-053055.png}} | 
| - | fit()関数は、固定のエポック数でモデルを訓練します。 | + | evaluate()関数は、バッチごとにある入力データにおける損失値を計算します。つまり、損失関数にx_testとy_testの組み合わせを入力して、その結果を出力します。 | 
| ===== 参考文献 ===== | ===== 参考文献 ===== | ||
| 初めてKerasプログラミングをやるときの超おすすめ本。\\ | 初めてKerasプログラミングをやるときの超おすすめ本。\\ | ||