ユーザ用ツール

サイト用ツール


7_推測_keras

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
7_推測_keras [2017/10/28] – [リンク] adash3337_推測_keras [2018/10/07] (現在) – 外部編集 127.0.0.1
行 1: 行 1:
 ===== (7)学習結果を用いて推測する(Keras) ===== ===== (7)学習結果を用いて推測する(Keras) =====
-<KerasでMNIST目次>\\ +<wrap hi>Keras2でMNIST目次</wrap>\\ 
-[[Kerasプログラミングの全体図]]\\ +[[Kerasプログラミングの全体図]] 
-[[(1)Kerasを使用するためのimport文]]\\ +  -[[(1)Kerasを使用するためのimport文]] 
-[[(2)データ準備(Keras)]]\\ +  -[[(2)データ準備(Keras)]] 
-[[(3)モデル設定(Keras)]]\\ +  -[[(3)モデル設定(Keras)]] 
-[[(4)モデル学習(Keras)]]\\ +  -[[(4)モデル学習(Keras)]] 
-[[(5)結果の出力(Keras)]]\\ +  -[[(5)結果の出力(Keras)]] 
-[[(6)学習結果の保存(Keras)]]\\ +  -[[(6)学習結果の保存(Keras)]] 
-(7)推測(Keras) いまココ +  -[[(7)推測(Keras)]] <wrap hi><いまココ</wrap>
-\\+
  
-最初に以下コピペするだけですがプログラムごさらimport文追加が必要になる場合があります。+Import文記載後モデルパラメータを読み込み分類したい新しい画像データをNumpy配列変換したち、予測を行います。
  
 <code> <code>
-import keras +# predict.py 
-from keras.models import Sequential +# predict_MNIST_MLP(Keras2.0) 
-from keras.layers import Dense, Dropout +#7 推測(Keras)
-from keras.optimizers import RMSprop +
-from keras.utils import np_utils+
  
-from sklearn.model_selection import train_test_split+(途中)
  
 +</code>
 +
 +作成中。
 +
 +参考:
 +自前のデータでKerasで画像分類を写経してみる(2)\\
 +2017/8/5 2017/8/9 \\
 +http://twosquirrel.mints.ne.jp/?p=19500
 +
 +
 +
 +===== 開発環境 =====
 +Windows 8.1\\
 +Anaconda \\
 +Python 3.5\\
 +Tensorflow 1.4\\
 +Keras 2.0.9\\
 +
 +Keras2.0のインストール方法は[[windowsにkeras2.0をインストール]]をご覧下さい。
 +
 +このページは、[[(6)学習結果の保存(Keras)]]の続きであり、今回は、学習結果を用いて、推測を行っていきます。
 +
 +===== 手順 =====
 +
 +
 +==== 0. 前回終了時の画面 ====
 +[[(6)学習結果の保存(Keras)]]終了時は、以下のような状態となっています。
 +
 +{{:pasted:20171110-070427.png}}
 +
 +今回は、新しいipynbファイルを作成し、
 +
 +{{:pasted:20171117-210933.png}}
 +
 +predict_MNIST_MLP という名前に変更します。
 +
 +{{:pasted:20171117-211034.png}}
 +
 +predict_MNIST_MLP.ipynb は、train_MNIST_MLP.ipynb と同じフォルダにあります。
 +
 +{{:pasted:20171117-211127.png}}
 +
 +以下の状態から始めます。
 +
 +{{:pasted:20171117-211216.png}}
 +
 +
 +==== 1. 推測したい画像の準備 ====
 +MNSIT画像は、なぜか、黒の背景に白で手書きの数字が書いてあるような画像であるので、Windows 8.1に付属している「ペイント」で、適当な手書き数字を作成し、/testSet/ フォルダに、「img_1.jpg」という名前で保存します。
 +
 +{{:pasted:20171117-211948.png}}
 +
 +{{:pasted:20171117-212009.png}}
 +
 +==== 2. モデルの学習 ====
 +以下のコードを入力して、Shift + Enterを押します。
 +
 +<code>
 +# predict.py
 +#7 推測
 +
 +%matplotlib inline
 +
 +from keras.preprocessing import image
 import numpy as np import numpy as np
 +import sys
 from PIL import Image from PIL import Image
-import os+import matplotlib.pyplot as plt 
 + 
 +from keras.models import model_from_json 
 + 
 +# load model and weight 
 +model = model_from_json(open('apple_orange_model.json').read()) 
 +model.load_weights('apple_orange_weights.h5'
 + 
 +filepath = "testSet/img_1.jpg" 
 +# 画像を読み込み、グレースケールに変換し、28x28pixelに変換し、numpy配列へ変換する。 
 +# 画像の1ピクセルは、それぞれが0-255の数値。 
 +image = np.array(Image.open(filepath).convert("L").resize((28, 28))) 
 +print(filepath) 
 +# さらにフラットな1次元配列に変換。 
 +image = image.reshape(1, 784).astype("float32")[0] 
 +result = model.predict_classes(np.array([image / 255.])) 
 +print("result:", result[0]) 
 + 
 +# 画像を表示 
 +im = Image.open(filepath) 
 +plt.imshow(np.array(im), cmap='gray')
 </code> </code>
  
-始めはかなりとっつきにくいimport文ですが、python勉強をしていくにて、徐々にれてきます。+以下のような画面になります。 
 + 
 +{{:pasted:20171117-213239.png}} 
 + 
 +{{:pasted:20171117-213300.png}} 
 + 
 +ちゃん、「2」と予測でたようです。 
 + 
 +上記コードはコメント解説を書かせていただいておりますが、今回ポイントとしては、 
 + 
 +<code> 
 +from keras.models import model_from_json 
 + 
 +# load model and weight 
 +model = model_from_json(open('apple_orange_model.json').read()) 
 +model.load_weights('apple_orange_weights.h5'
 +</code> 
 +の部分で、modelと、modelのweightを読み込んでるところです。この2の中身は、前回の<wrap hi>[[(6)学習結果の保存(Keras)]]</wrap>で保存した名前と一致させる必要があります。 
 + 
 +Kerasで推測の手順は上記でおしまいです。 
 + 
 +そして、KerasでMNISTシリーズは一旦ここで終了となります。グレースケール画像の分類であば、今までのコードのほぼコピペで、実行することができるようになります。 
 + 
 +しかし、自前データで画像分類をする場合は、画像の前処理を行っ、Kerasが理解でる形に変換しておかないといけません。 
 + 
 +次は、自前データでKerasで画像分類を行う方法の解説の例として、MNISTの画像データから、Keras用データセットの作成について説明したいと思います。ご興味のある方は、ぜひ、<wrap hi>[[Keras2用自前データの準備]]</wrap>へお進みください。 
  
-keras特有のもの以外のimport文については、以下のリンクをご覧ください。 
  
-機械学習で用いるpythonの”import xxx”まとめ\\ 
-2017/10/25\\ 
-http://twosquirrel.mints.ne.jp/?p=20344 
  
  
行 50: 行 154:
 ===== リンク ===== ===== リンク =====
  
-目次\\ +次: [[機械学習成果をWEBで公開]] 
-[[Kerasプログラミングの全体図]]\\ + 
-[[(1)Kerasを使用するためのimport文]]\\ +前: [[(6)学習結果の保存(Keras)]] 
-[[(2)データ準備(Keras)]]\\ + 
-[[(3)モデル設定(Keras)]]\\ + 
-[[(4)モデル学習(Keras)]]\\ +<wrap hi>Keras2でMNIST目次</wrap>\\ 
-[[(5)結果の出力(Keras)]]\\ +[[Kerasプログラミングの全体図]] 
-[[(6)学習結果の保存(Keras)]]\\ +  -[[(1)Kerasを使用するためのimport文]] 
-(7)推測(Keras) ←いまココ +  -[[(2)データ準備(Keras)]] 
-\\+  -[[(3)モデル設定(Keras)]] 
 +  -[[(4)モデル学習(Keras)]] 
 +  -[[(5)結果の出力(Keras)]] 
 +  -[[(6)学習結果の保存(Keras)]] 
 +  -[[(7)推測(Keras)]] 
 + 
  
 今回で、KerasによるMNISTコードの解説シリーズはおしまいです。 今回で、KerasによるMNISTコードの解説シリーズはおしまいです。
行 66: 行 176:
 <wrap hi> <wrap hi>
 [[機械学習成果をWEBで公開]] [[機械学習成果をWEBで公開]]
-</wrap/>+</wrap>
  

7_推測_keras.1509152854.txt.gz · 最終更新: 2018/10/07 (外部編集)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki