ユーザ用ツール

サイト用ツール


サイドバー

目次

機械学習とは

プログラミング無しで機械学習

機械学習プログラミング入門

初めてのKeras2.0

初めてのTensorflow(YouTube)

初めてのChainer2.0

初めてのビットコイン

ビットコイン用語集

初めてのSolidityプログラミング

初めての医療統計

初めてのエクセルで医療統計

初めてのEZRで医療統計

初めてのRStudioでレポート作成

スマホアプリ作成ソフトIonic3

スマホアプリ作成ソフトIonic4

Ionicのためのjavascript tips

その他

NiftyCloudMobileBackend

税金など

Dokuwiki

kerasプログラミングの全体図

以前のリビジョンの文書です


Kerasプログラミングの全体図

Keras2でMNIST目次
Kerasプログラミングの全体図

Kerasを用いて機械学習を行う場合、以下のような流れでプログラミング文を読んだり書いたりしていくと、分かりやすいと思います。

実際に自前データを動かそうとするときは、ある程度、pythonの勉強と、機械学習の勉強が必要だと思われます。

# train.py
#1 Kerasを使用するためのimport文

#2 データ準備(Keras)

#3 モデル設定(Keras)

#4 モデル学習(Keras)

#5 結果の出力(Keras)

#6 学習結果の保存(Keras)

# predict.py
#7 推測(Keras)

Kerasプログラミングの全体図(コード記載)

上記にコードの一部を入れて、再度記載します。

# train.py

#1 Kerasを使用するためのimport文
import keras
from keras.models import Sequential
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
import os

#2 データ準備(Keras)
image_list = []
label_list = []
(画像を読み込み、リサイズ、正規化などを行い、Numpy配列に変換し、「学習用データ」と「テストデータ」を作成する。)

#3 モデル設定(Keras)
model = Sequential()
model.add(Dense(512, activation='relu', input_shape=(784,)))
model.add(Dropout(0.2))
(以下、model.add()でモデルを加えていき、)
model.summary() # モデルの表示
model.compile(loss='categorical_crossentropy',
              optimizer=RMSprop(),
              metrics=['accuracy']) # 損失関数、最適化手法などを設定
              
#4 モデル学習(Keras)
history = model.fit(X_train, y_train,
                    batch_size=batch_size, epochs=epochs,
                    verbose=1, validation_data=(X_test, y_test))

#5 結果の出力(Keras)
score = model.evaluate(X_test, y_test, verbose=0)
print('Test loss:', score[0])

#6 学習結果の保存(Keras)
json_string = model.to_json()
open('apple_orange_model.json', 'w').write(json_string)
model.save_weights('apple_orange_weights.h5')

# predict.py
#7 推測(Keras)
from keras.preprocessing import image
import numpy as np
import sys

filepath = "(予測したいファイルのPATH)"
image = np.array(Image.open(filepath).convert("L").resize((28, 28)))
print(filepath)
image = image.reshape(1, 784).astype("float32")[0]
result = model.predict_classes(np.array([image / 255.]))
print("result:", result[0])

Kerasプログラミングの例(train.pyとpredict.py)

C:/py/keras/MNIST_MLP/フォルダに、dataフォルダとtrain.py、predict.pyが入っており、dataフォルダの中身は以下のようになっているものとします。

train.py

Jupyter Notebookでの実行結果

predict.py

Jupyter Notebookでの実行結果

参考文献

初めてKerasプログラミングをやるときは、以下の2つの本がおすすめです。ゼロから作るDeep LearningでPythonの基本と理論を学び、詳解 ディープラーニングで、Kerasでの実装方法を学ぶのがよいと思われます。

 

Keras公式GitHub
keras/examples/mnist_mlp.py
Branch:keras-2
https://github.com/fchollet/keras/blob/keras-2/examples/mnist_mlp.py

kerasのmnistのサンプルを読んでみる ash8h 2017年07月29日に投稿
https://qiita.com/ash8h/items/29e24fc617b832fba136

次節以降

上記の手書き数字MNISTのMLP(Multilayer perceptron )モデルによる学習を例に、一つずつ解説させていただきたいと思います。

いつもあまり面白くないMNISTですが、Kerasプログラミングを理解する上で避けて通れないので、頑張ってやってみたいと思います。

リンク

kerasプログラミングの全体図.1509779513.txt.gz · 最終更新: 2018/10/07 (外部編集)