2_データ準備_keras
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
2_データ準備_keras [2017/11/05] – [1. データセットの準備] adash333 | 2_データ準備_keras [2018/10/07] (現在) – 外部編集 127.0.0.1 | ||
---|---|---|---|
行 50: | 行 50: | ||
Keras 2.0.9\\ | Keras 2.0.9\\ | ||
- | Keras2.0のインストール方法は[[windowsにkeras2.0をインストール]]をご覧下さい。 | + | Keras2.0のインストール方法は<wrap hi>[[windowsにkeras2.0をインストール]]</ |
- | このページは、[[(1)Kerasを使用するためのimport文]]の続きであり、今回は、MNISTのデータの準備・設定を行っていきます。 | + | このページは、<wrap hi>[[(1)Kerasを使用するためのimport文]]</ |
データの準備が難しいところなのですが、今回は、最初なので、Kerasであらかじめ用意されているMNISTデータセットを利用します。 | データの準備が難しいところなのですが、今回は、最初なので、Kerasであらかじめ用意されているMNISTデータセットを利用します。 | ||
- | オリジナルデータセットの準備については、後日、[[Keras2用自前データの準備]]に記載予定です。 | + | オリジナルデータセットの準備については、後日、<wrap hi>[[Keras2用自前データの準備]]</ |
===== 手順 ===== | ===== 手順 ===== | ||
行 122: | 行 122: | ||
手書き数字MNISTは、本来は28x28pixelのグレースケールの画像と、それが何の数字であるかの正解ラベルのセットです。この画像と正解ラベルのセットが、training用の6万セット、test用の1万セットとなっています。 | 手書き数字MNISTは、本来は28x28pixelのグレースケールの画像と、それが何の数字であるかの正解ラベルのセットです。この画像と正解ラベルのセットが、training用の6万セット、test用の1万セットとなっています。 | ||
- | ただ、画像のままではKerasでは読み込めません。そのため、画像を0~255の値をとる284個の数字が1列に並んだ配列に変換(reshape(60000, | + | ただ、画像のままではKerasでは読み込めません。そのため、画像を0~255の値をとる784個の数字が1列に並んだ配列に変換(reshape(60000, |
さらに、以下のコードで、正解ラベルをone hot ベクトルに変換したものを、y_trainに代入しています。 | さらに、以下のコードで、正解ラベルをone hot ベクトルに変換したものを、y_trainに代入しています。 | ||
行 176: | 行 176: | ||
Kerasが用意しているMNISTデータセットを用いる手順は上記でおしまいです。 | Kerasが用意しているMNISTデータセットを用いる手順は上記でおしまいです。 | ||
- | <wrap hi> | ||
- | 初めての場合は、次は、とりあえず、</ | ||
- | </ | ||
- | (参考) | + | 初めての場合は、次は、とりあえず、< |
- | + | ||
- | one-hotエンコーディング について\\ | + | |
- | 2016-11-08 | + | |
- | Kerasによる多クラス分類(Iris)\\ | + | |
- | http:// | + | |
===== keras.datasets.mnist.load_data()関数について ===== | ===== keras.datasets.mnist.load_data()関数について ===== | ||
行 194: | 行 186: | ||
今回はそれにあたります(MNISTなんてグレースケールで十分)が、 | 今回はそれにあたります(MNISTなんてグレースケールで十分)が、 | ||
< | < | ||
- | train, test = mnist.get_mnist(withlabel=True, | + | from keras.datasets import mnist |
+ | |||
+ | (x_train, y_train), (x_test, y_test) | ||
</ | </ | ||
- | のように、引数に、withlabel=True, | + | のように、x_trainとx_testに、画像データをNumpy配列に変換済みのものを代入し、y_trainとy_testに対応する正解ラベルを代入します。 |
(2)もともとのデータセットがグレースケール画像のデータとなっています。 | (2)もともとのデータセットがグレースケール画像のデータとなっています。 | ||
Keras関連の関数については、公式マニュアルを読むのが一番です。日本語もあります!公式マニュアルが比較的読みやすいです。 | Keras関連の関数については、公式マニュアルを読むのが一番です。日本語もあります!公式マニュアルが比較的読みやすいです。 | ||
- | |||
https:// | https:// | ||
{{: | {{: | ||
+ | |||
+ | ===== one-hotエンコーディング について ===== | ||
+ | たとえば、正解ラベルが0, | ||
+ | < | ||
+ | 0 => [1, 0, 0, 0, 0, 0, 0 ,0, 0, 0] | ||
+ | 1 => [0, 1, 0, 0, 0, 0, 0 ,0, 0, 0] | ||
+ | 2 => [0, 0, 1, 0, 0, 0, 0 ,0, 0, 0] | ||
+ | ... | ||
+ | 9 => [0, 0, 0, 0, 0, 0, 0 ,0, 0, 1] | ||
+ | </ | ||
+ | のように、数値をベクトルで表現することを、one-hot エンコーディングといいます。 | ||
+ | |||
+ | 機械学習の計算では、コンピュータに行列計算をさせることが多い(だからGPUをうまく使用すると計算スピードが速くなる)ので、正解ラベルもベクトルで表現しておくと都合がよいらしいです。コンピュータに効率良く計算させるために、ミニバッチ学習とか、プログラミング的には面倒なだけで意味不明なことをやっていたりするという噂を聞いたりしたことがあります(まだちゃんと理解していません、間違っていたらすみません、、、)。 | ||
+ | |||
+ | ちなみに、one-hotベクトルを、通常のラベルに戻すときには、Numpyのargmax()関数を利用して、one-hotベクトル(=配列)の、最大要素のインデックスを取り出して、数値に戻します。具体的な方法は、[[Keras2用自前データの準備]]に記載予定です。 | ||
+ | |||
+ | |||
+ | 2016-11-08 Kerasによる多クラス分類(Iris) | ||
+ | http:// | ||
===== 参考文献 ===== | ===== 参考文献 ===== | ||
初めてKerasプログラミングをやるときの超おすすめ本。\\ | 初めてKerasプログラミングをやるときの超おすすめ本。\\ |
2_データ準備_keras.1509915141.txt.gz · 最終更新: 2018/10/07 (外部編集)