この文書の現在のバージョンと選択したバージョンの差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
| 
                    2_データの準備・設定 [2017/11/03] adash333 [1. データセットの準備]  | 
                
                    2_データの準備・設定 [2018/10/07] (現在) | 
            ||
|---|---|---|---|
| ライン 4: | ライン 4: | ||
| [[Chainer2プログラミングの全体図]] | [[Chainer2プログラミングの全体図]] | ||
| -[[(1)Chainer2を使用するためのimport文]] | -[[(1)Chainer2を使用するためのimport文]] | ||
| - | -[[(2)データの準備・設定|(2)データの準備・設定(Chainer)]] | + | -[[(2)データの準備・設定|(2)データの準備・設定(Chainer)]] <wrap hi><= いまココ</wrap> | 
| -[[(3)モデルの記述|(3)モデルの記述(Chainer)]] | -[[(3)モデルの記述|(3)モデルの記述(Chainer)]] | ||
| -[[(4)モデルと最適化アルゴリズムの設定|(4)モデルと最適化アルゴリズムの設定(Chainer)]] | -[[(4)モデルと最適化アルゴリズムの設定|(4)モデルと最適化アルゴリズムの設定(Chainer)]] | ||
| ライン 67: | ライン 67: | ||
| </code> | </code> | ||
| - | 以下のような画面になります。(以下の画面は、2回目以降の画面となります。最初は、「Downloading from http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz...」といった感じの文字が4行続くと思います。) | + | 以下のような画面になります。(以下の画面は、2回目以降の画面となります。最初は、「Downloading from %%http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz...%%」といった感じの文字が4行続くと思います。) | 
| {{:pasted:20171103-211623.png}} | {{:pasted:20171103-211623.png}} | ||
| ライン 83: | ライン 83: | ||
| MNISTとは何か、またこれから何をやろうとしているのかについては、以下のサイトが非常に分かりやすいです。\\ | MNISTとは何か、またこれから何をやろうとしているのかについては、以下のサイトが非常に分かりやすいです。\\ | ||
| - | http://exceldeeplearning.blog.jp/archives/1411297.html | + | http://exceldeeplearning.blog.jp/archives/1411297.html\\ | 
| + | ちなみに、よく言われているMNISTの元データのダウンロードついては、[[http://twosquirrel.mints.ne.jp/?p=20277|こちら]]をご覧いただければと思います。 | ||
| 手書き数字MNISTは、本来は28x28pixelのグレースケールの画像と、それが何の数字であるかの正解ラベルのセットです。この画像と正解ラベルのセットが、training用の6万セット、test用の1万セットとなっています。 | 手書き数字MNISTは、本来は28x28pixelのグレースケールの画像と、それが何の数字であるかの正解ラベルのセットです。この画像と正解ラベルのセットが、training用の6万セット、test用の1万セットとなっています。 | ||
| ライン 136: | ライン 137: | ||
| こちらは、ダウンロードしたMNIST画像の1つを、Jupyter Notebook上に表示して確認しています。一つ一つのコードについては、上記のコード内にコメントで記載しました。ここでは、numpyのreshape()関数と、matplotlib.pyplotのimshow()関数、show()関数を用いています。numpyとmatplotlibは機械学習プログラミングでよく使いますので、特にNumpyについては勉強しておく必要があります。 | こちらは、ダウンロードしたMNIST画像の1つを、Jupyter Notebook上に表示して確認しています。一つ一つのコードについては、上記のコード内にコメントで記載しました。ここでは、numpyのreshape()関数と、matplotlib.pyplotのimshow()関数、show()関数を用いています。numpyとmatplotlibは機械学習プログラミングでよく使いますので、特にNumpyについては勉強しておく必要があります。 | ||
| - | Numpyについては、http://twosquirrel.mints.ne.jp/?p=20153をご覧いただければ幸いですが、以下の2つの本などで、ある程度しっかり勉強しておく必要があります。 | + | Numpyについては、[[http://twosquirrel.mints.ne.jp/?p=20153|Chainer用の画像処理メモ(5)初めてのNumPy"import numpy as np"]]をご覧いただければ幸いですが、以下の2つの本などで、ある程度しっかり勉強しておく必要があります。 | 
| + | <html> | ||
| + | <iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=twosquirrel-22&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=4873117585&linkId=560f10e512d4dcc99644bbfabcb18cd3"></iframe> | ||
| + |   | ||
| + | <iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=twosquirrel-22&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=4274221075&linkId=e362b0741ce31d467f246f2a47709906"></iframe> | ||
| + | </html> | ||
| - | こちたのコードは、特にMNISTのtrainingを行う際には不要ですが、データを読み込んだときに、読み込んだデータと元のデータとの整合性の検証は大事なことなので、このようなコードの記載があるのだと思われます。 | ||
| - | Chainerが用意しているMNISTデータセットを用いる手順は上記でおしまいです。 | + | 後半のコードは、特にMNISTのtrainingを行う際には不要ですが、データを読み込んだときに、読み込んだデータと元のデータとの整合性の検証は大事なことなので、このようなコードの記載があるのだと思われます。 | 
| - | 初めての場合は、次は、とりあえず、[[(3)モデルの記述]]に進んでください。 | + | Chainerが用意しているMNISTデータセットを用いる手順は上記でおしまいです。 | 
| + | <wrap hi> | ||
| + | 初めての場合は、次は、とりあえず、</wrap>[[(3)モデルの記述]]<wrap hi>に進んでください。 | ||
| + | </wrap> | ||
| - | ==== chainer.datasets.get_mnist関数について ==== | + | ===== chainer.datasets.get_mnist関数について ===== | 
| trainとtestに対応する2つのdatasetを返します。 | trainとtestに対応する2つのdatasetを返します。 | ||
| ライン 171: | ライン 179: | ||
| {{:pasted:20171103-185942.png}} | {{:pasted:20171103-185942.png}} | ||
| - | ==== import matplotlib.pyplot as pltについて ==== | + | ===== Numpy配列について ===== | 
| + | |||
| + | よろしければ、以下をご覧ください。 | ||
| + | |||
| + | Chainer用の画像処理メモ(5)初めてのNumPy"import numpy as np"\\ | ||
| + | 2017/10/22\\ | ||
| + | http://twosquirrel.mints.ne.jp/?p=20209 | ||
| + | |||
| + | Chainer用の画像処理メモ(6)画像をNumpy配列に変換\\ | ||
| + | 2017/10/23\\ | ||
| + | http://twosquirrel.mints.ne.jp/?p=20209 | ||
| + | |||
| + | ===== import matplotlib.pyplot as pltについて ===== | ||
| かなり面倒ですが、コードを理解するためには、import文の役割を一つずつ調べていくのが王道です。 | かなり面倒ですが、コードを理解するためには、import文の役割を一つずつ調べていくのが王道です。 | ||
| - | 機械学習プログラミングで使用することが多いimport文について、以下にまとめていく予定ですので、もしよろしければご覧ください。 | + | 機械学習プログラミングで使用することが多いimport文について、以下にまとめていく予定ですので、ぜひご覧ください。 | 
| 機械学習で用いるpythonの”import xxx”まとめ\\ | 機械学習で用いるpythonの”import xxx”まとめ\\ | ||
| ライン 181: | ライン 201: | ||
| http://twosquirrel.mints.ne.jp/?p=20344 | http://twosquirrel.mints.ne.jp/?p=20344 | ||
| - | Matplotlibについては、以下の本の第4章「Matplotlibでグラフを描画しよう」がおすすめです。 | + | Matplotlibについては、以下の本の第4章「Matplotlibでグラフを描画しよう」がおすすめですが、さしあたり、[[https://qiita.com/Tatejimaru137/items/44646c9bb3799768fa81|matplotlibで画像を連続的に表示する方法メモ]]や[[http://oikakeru.hateblo.jp/entry/2017/03/30/150842|Matplotlibで画像を表示してみるetc(その1)]]が参考になります。matplotlib.pyplotで画像を表示するために、numpyとかPIL(pillow)とかいきなり出てきますので、その都度、[[http://twosquirrel.mints.ne.jp/?p=20344|機械学習で用いるpythonの”import xxx”まとめ]]で該当部分をチェックしてもよいとは思います。 | 
| <html> | <html> | ||
| <iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=twosquirrel-22&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B075F3CHZ4&linkId=2d818cc48f5ec3d86ce1430f996e8124"></iframe> | <iframe style="width:120px;height:240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" src="//rcm-fe.amazon-adsystem.com/e/cm?lt1=_blank&bc1=000000&IS2=1&bg1=FFFFFF&fc1=000000&lc1=0000FF&t=twosquirrel-22&o=9&p=8&l=as4&m=amazon&f=ifr&ref=as_ss_li_til&asins=B075F3CHZ4&linkId=2d818cc48f5ec3d86ce1430f996e8124"></iframe> | ||
| </html> | </html> | ||
| - | |||
| - | |||
| - | 作成中 | ||
| - | |||
| ===== 参考文献 ===== | ===== 参考文献 ===== | ||
| ライン 220: | ライン 236: | ||
| https://qiita.com/tommyfms2/items/c3fa0cb258c17468cb30 | https://qiita.com/tommyfms2/items/c3fa0cb258c17468cb30 | ||
| ===== リンク ===== | ===== リンク ===== | ||
| - | <ChainerでMNIST目次>\\ | + | |
| - | [[Chainer2プログラミングの全体図|(0)Chainer2プログラミングの全体図]]\\ | + | 次 [[(3)モデルの記述|(3)モデルの記述(Chainer)]] | 
| - | [[(1)Chainer2を使用するためのimport文]]\\ | + | |
| - | [[(2)データの準備・設定|(2)tuple_datasetによるデータの準備・設定]]\\ | + | 前 [[(1)Chainer2を使用するためのimport文]] | 
| - | [[(3)モデルの記述]]\\ | + | |
| - | [[(4)モデルと最適化アルゴリズムの設定]]\\ | + | |
| - | [[(5)学習(Trainerを利用しない場合)]]\\ | + | <wrap hi>Chainer2でMNIST目次</wrap>\\ | 
| - | [[(6)結果の出力]]\\ | + | [[Chainer2プログラミングの全体図]] | 
| + | -[[(1)Chainer2を使用するためのimport文]] | ||
| + | -[[(2)データの準備・設定|(2)データの準備・設定(Chainer)]] <wrap hi><= いまココ</wrap> | ||
| + | -[[(3)モデルの記述|(3)モデルの記述(Chainer)]] | ||
| + | -[[(4)モデルと最適化アルゴリズムの設定|(4)モデルと最適化アルゴリズムの設定(Chainer)]] | ||
| + | -[[(5)学習と結果の出力(Chainer)]] | ||
| + | -[[(6)結果の出力|(6)学習結果のパラメータの保存(Chainer)]] | ||
| + | -[[(7)推測|(7)推測(Chainer)]] | ||