4_モデル学習_keras
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン最新のリビジョン両方とも次のリビジョン | ||
4_モデル学習_keras [2017/11/04] – [(4)モデル学習(Keras)] adash333 | 4_モデル学習_keras [2017/11/17] – [1. モデルの学習] adash333 | ||
---|---|---|---|
行 5: | 行 5: | ||
-[[(2)データ準備(Keras)]] | -[[(2)データ準備(Keras)]] | ||
-[[(3)モデル設定(Keras)]] | -[[(3)モデル設定(Keras)]] | ||
- | -[[(4)モデル学習(Keras)]] | + | -[[(4)モデル学習(Keras)]] <wrap hi><= いまココ</ |
- | -[[(5)結果の出力(Keras)]] <wrap hi><= いまココ</ | + | -[[(5)結果の出力(Keras)]] |
-[[(6)学習結果の保存(Keras)]] | -[[(6)学習結果の保存(Keras)]] | ||
-[[(7)推測(Keras)]] | -[[(7)推測(Keras)]] | ||
- | 最初に以下をコピペするだけですが、プログラムごとに、さらにimport文の追加が必要になる場合があります。 | + | 基本的に以下をコピペするだけです。 |
< | < | ||
- | import keras | + | #4 モデル学習(Keras) |
- | from keras.models import Sequential | + | history = model.fit(x_train, |
- | from keras.layers import Dense, Dropout | + | |
- | from keras.optimizers import RMSprop | + | |
- | from keras.utils import np_utils | + | </ |
- | from sklearn.model_selection import train_test_split | ||
- | import numpy as np | + | ===== 開発環境 ===== |
- | from PIL import Image | + | Windows 8.1\\ |
- | import os | + | Anaconda \\ |
+ | Python 3.5\\ | ||
+ | Tensorflow 1.4\\ | ||
+ | Keras 2.0.9\\ | ||
+ | |||
+ | Keras2.0のインストール方法は[[windowsにkeras2.0をインストール]]をご覧下さい。 | ||
+ | |||
+ | このページは、[[(3)モデル設定(Keras)]]の続きであり、今回は、モデルの学習を行っていきます。 | ||
+ | |||
+ | ===== 手順 ===== | ||
+ | |||
+ | |||
+ | ==== 0. 前回終了時の画面 ==== | ||
+ | [[(3)モデル設定(Keras)]]終了時の、以下のような状態から始めます。 | ||
+ | |||
+ | {{: | ||
+ | ==== 1. モデルの学習 ==== | ||
+ | 以下のコードを入力して、Shift + Enterを押します。 | ||
+ | |||
+ | < | ||
+ | #4 モデル学習(Keras) | ||
+ | history = model.fit(x_train, | ||
+ | batch_size=batch_size, | ||
+ | verbose=1, validation_data=(x_test, | ||
</ | </ | ||
- | 始めはかなりとっつきにくいimport文ですが、pythonの勉強をしていくにつれて、徐々に、慣れてきます。 | + | 以下のような画面になります。 |
+ | |||
+ | {{: | ||
+ | |||
+ | 3分くらい待つと、学習が終了します。 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | |||
+ | model.fit()関数により、モデルの学習を実行しています。 | ||
+ | |||
+ | 引数については、KerasのDocumentationそのままとなりますが、以下に記載します。 | ||
+ | |||
+ | ---- | ||
+ | |||
+ | x: 入力データ,Numpy 配列,あるいは Numpy 配列のリスト (モデルに複数の入力がある場合)\\ | ||
+ | y: ラベル,Numpy 配列. | ||
+ | |||
+ | batch_size: 整数.設定したサンプル数ごとに勾配の更新を行います。今回は、< | ||
+ | |||
+ | epochs: 整数で,モデルを訓練するエポック数。今回は、<wrap hi> | ||
+ | |||
+ | verbose: 0とすると標準出力にログを出力しません. 1の場合はログをプログレスバーで標準出力,2 の場合はエポックごとに1行のログを出力します | ||
+ | |||
+ | validation_data=(x_test, | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | KerasでのModel学習の手順は上記でおしまいです。 | ||
+ | |||
+ | 初めての方は、次は、< | ||
+ | |||
+ | |||
+ | (参考) | ||
+ | Keras チュートリアル\\ | ||
+ | sasayabaku | ||
+ | 2017年08月16日に更新\\ | ||
+ | https:// | ||
+ | |||
+ | |||
+ | ===== kerasのSequentialモデルのfitメソッドについて ===== | ||
+ | |||
+ | https:// | ||
+ | {{: | ||
+ | |||
+ | fit()関数は、固定のエポック数でモデルを訓練します。 | ||
+ | |||
+ | 戻り値は、History オブジェクト。History.history 属性は、実行に成功したエポックにおける訓練の損失値と評価関数値の記録と,(適用可能ならば)検証における損失値と評価関数値も記録しています。 | ||
+ | |||
+ | model.fit()の返り値を出力を変数に格納すると学習過程のパラメータの推移をプロットできます。 | ||
+ | |||
+ | 上記の例では、Historyに格納しているので、以下のようなコードで、lossやaccuracyのグラフを出力することができます。 | ||
+ | |||
+ | < | ||
+ | import matplotlib.pyplot as plt | ||
+ | %matplotlib inline | ||
+ | loss = history.history[' | ||
+ | val_loss = history.history[' | ||
+ | |||
+ | # lossのグラフ | ||
+ | plt.plot(range(3), | ||
+ | plt.plot(range(3), | ||
+ | plt.legend(loc=' | ||
+ | plt.grid() | ||
+ | plt.xlabel(' | ||
+ | plt.ylabel(' | ||
+ | plt.show() | ||
+ | </ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | < | ||
+ | import matplotlib.pyplot as plt | ||
+ | %matplotlib inline | ||
+ | acc = history.history[' | ||
+ | val_acc = history.history[' | ||
+ | |||
+ | # accuracyのグラフ | ||
+ | plt.plot(range(3), | ||
+ | plt.plot(range(3), | ||
+ | plt.legend(loc=' | ||
+ | plt.grid() | ||
+ | plt.xlabel(' | ||
+ | plt.ylabel(' | ||
+ | plt.show() | ||
+ | </ | ||
+ | |||
+ | {{: | ||
- | keras特有のもの以外のimport文については、以下のリンクをご覧ください。 | ||
- | 機械学習で用いるpythonの”import xxx”まとめ\\ | ||
- | 2017/ | ||
- | http:// | ||
+ | ===== Optimizerについて ===== | ||
+ | optimizer(最適化)について\\ | ||
+ | https:// | ||
===== 参考文献 ===== | ===== 参考文献 ===== |
4_モデル学習_keras.txt · 最終更新: 2018/10/07 by 127.0.0.1