いまココ(3)モデル設定(Keras)(4)モデル学習(Keras)(5)結果の出力(Keras)(6)学習結果の保存(Keras)(7)推測(Keras)以下のような流れになります。Numpy配列についての知識が必要です。np"とChainer用の画像処理メモ(6)画像をNumpy配列に変換をご覧いただければ幸いです。Numpy配列に変換し、「学習用データ」と「テストデータ」を作成する。random_state=111)自前データを利用する場合に最も大事な部分であり、最初は、かなりとっつきにくい部分となります。具体的な方法について興味のある方はKeras2用自前データの準備をご覧ください。今回は一番最初のチュートリアルなので、以下のようにKerasが用意しているMNISTデータセット(画像ではなく、既に数値の配列に変換されているもの)を用いて行います。(MNISTデータを用いるときしかできません。自前データを利用する場合は真似できない方法であり、あくまでチュートリアル用の方法です。2.0.9Keras2.0のインストール方法はwindowsにkeras2.0をインストールをご覧下さい。このページは、(1)Kerasを使用するためのimport文の続きであり、今回は、MNISTのデータの準備・設定を行っていきます。データの準備が難しいところなのですが、今回は、最初なので、Kerasであらかじめ用意されているMNISTデータセットを利用します。オリジナルデータセットの準備については、後日、Keras2用自前データの準備に記載予定です。前回終了時の画面(1)Kerasを使用するためのimport文終了時の、以下のような状態から始めます。Enterを押します。最初は、MNISTの画像データなどがダウンロードされるので、時間がかかります。matplotlibを使ったグラフ描画結果がnotebook内に表示されるようにします。t)以下のような画面になります。(以下の画面は、2回目以降の画面となります。http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz...」といった感じの文字が4行続くかもしれません。)順に解説していきます。mnist.load_data()Kerasが用意しているkeras.datasetsから、手書き数字MNISTのデータをダウンロードして読み込みます。MNISTとは何か、またこれから何をやろうとしているのかについては、以下のサイトが非常に分かりやすいです。http://exceldeeplearning.blog.jp/archives/1411297.htmlちなみに、よく言われているMNISTの元データのダウンロードついては、こちらをご覧いただければと思います。上記サイトのデータも、画像が既に数値の配列に変換されたものであるので、画像をダウンロードしたい場合は、サンプル数などは少し異なりますが、手書き数字MNISTのjpgファイル群をダウンロードする方法をご覧頂ければ幸いです。手書き数字MNISTは、本来は28x28pixelのグレースケールの画像と、それが何の数字であるかの正解ラベルのセットです。この画像と正解ラベルのセットが、training用の6万セット、test用の1万セットとなっています。画像のままではKerasでは読み込めません。784))し、さらに正規化といって全部255で割ったたものをx_trainに代入しています。ベクトルに変換したものを、y_trainに代入しています。Enterで実行すると、以下のように表示されてます。xは、1×784のNumpy配列(各要素は0から1までの数値(dtype=float32))であり、tは正解ラベル(dtype=int32)となっています。コードの解説に戻ります。Notebookで可視化しています。notebook内に表示されるようにする。今回は正解ラベルのインデックスが、そのまま、数字0や1のラベルとなっている。Notebook上に表示して確認しています。一つ一つのコードについては、上記のコード内にコメントで記載しました。ここでは、Numpyのreshape()関数と、matplotlib.pyplotのimshow()関数、show()関数を用いています。numpyとmatplotlibは機械学習プログラミングでよく使いますので、特にNumpyについては勉強しておく必要があります。Learningなどの本を読んで繰り返し写経して、ある程度しっかり勉強しておく必要があります。後半のコードは、特にMNISTのtrainingを行う際には不要ですが、データを読み込んだときに、読み込んだデータと元のデータとの整合性の検証は大事なことなので、このようなコードを記載しました。Kerasが用意しているMNISTデータセットを用いる手順は上記でおしまいです。場合は、次は、とりあえず、(3)モデル設定(Keras)に進んでください。keras.datasets.mnist.load_data()関数についてtrainとtestに対応する2つのdatasetを返します。mnist.load_data()のように、x_trainとx_testに、画像データをNumpy配列に変換済みのものを代入し、y_trainとy_testに対応する正解ラベルを代入します。(2)もともとのデータセットがグレースケール画像のデータとなっています。Keras関連の関数については、公式マニュアルを読むのが一番です。日本語もあります!公式マニュアルが比較的読みやすいです。エンコーディングといいます。機械学習の計算では、コンピュータに行列計算をさせることが多い(だからGPUをうまく使用すると計算スピードが速くなる)ので、正解ラベルもベクトルで表現しておくと都合がよいらしいです。コンピュータに効率良く計算させるために、ミニバッチ学習とか、プログラミング的には面倒なだけで意味不明なことをやっていたりするという噂を聞いたりしたことがあります(まだちゃんと理解していません、間違っていたらすみません、、、)。ちなみに、one-hotベクトルを、通常のラベルに戻すときには、Numpyのargmax()関数を利用して、one-hotベクトル(=配列)の、最大要素のインデックスを取り出して、数値に戻します。具体的な方法は、Keras2用自前データの準備に記載予定です。Kerasプログラミングをやるときの超おすすめ本。以前のリビジョンバックリンク文書の先頭へ。