【とりあえず動かすChainer】mnist
前回作成した環境を使って、実際にChainerを動かしてみる。
mnistとは
mnistとは、0~9までの手書き文字のデータセットのこと。
このデータセットを使用して手書き文字判別を行うことが、動作確認およびニューラルネットワーク界の「Hello World!」になっている様子。
ソースコードは以下からダウンロード。
mnistを動かす
ダウンロードが完了したら、
chainer\examples\mnist
の配下のファイルを作業ディレクトリにコピー。
今回はC:\python\mnistに設置。
配置したフォルダでコマンドプロンプトを開き、下記コマンドを実行。
> python train_mnist
(GPUを使用する場合は引数に「-g 0」を付ける。)
頑張れぼくのVAIO(Core i 5 メモリ4GB)
データセットのダウンロードが終わり、学習を始める。
18分ほどかかる模様。会社のハイスペックマシンだと2分かからなかった。GPU欲しい。
待つこと18分。
無事完了した様子。
作業フォルダを見るとresultフォルダが作成されているはず。
この中の「snapshot_iter_12000」を使用して手書き文字を判別する。
中身はネットワークの重みになっている。
任意の画像でのテストは後程編集
【とりあえず動かすChainer】Chainer環境構築
上司「来月からChainerを使ってDeepLearningやってくれ」
ぼく「!?」
という、急にDeepLearningをやれと言われてどこから手を付けていいか分からない人(自分)向けの環境構築メモ。
各要素のメモを簡単に残しつつ、他の方のページへリンク。
目次
Pythonについて
書きやすく読みやすい、教育用に開発された言語とのこと。
概要はさておき、まずPythonについて説明したいのは、
PythonにはPython2系と呼ばれるものとPython3系と呼ばれるものの
2種類あるということ。
これは単純にバージョン番号に起因する呼び方だけれど、
問題なのは後方互換がないということ。ことこと。
なのでChainerを使ってやりたいことが決まっている場合、
それがPython2系用のソースだったりしないか確認する必要がある。
上記が問題なかったり、よくわからなかったら
とりあえず3系を使用すればよい。
仮想環境やライブラリなどで2系用ソースも
のちのち動かすことは可能のため。
Anacondaのインストール
Download Anaconda Now! | Continuum
Anacondaとは、PythonとPython用の便利なライブラリやIDEを一度にインストールできるしゅごいソフト。
ライブラリの依存関係とか考えなくて良くて、インストーラ一発でやってくれる。(ディストリビューションというらしい。)
Windows、MacOS、Linuxに対応しているよう。今回はWindows前提で記載する。
リンク先からインストーラをダウンロードする。
Python2系、3系でインストーラが分かれているので注意。前述の通り仮想環境などでなんとかなるので、理由がなければ3系のインストーラを使用する。
- インストーラを起動
- I Agree
- インストールする範囲を選択(ログインユーザのみorPC全体)
- ファイルのインストール先を選択
- 「Add Anaconda to the system PATH enviroment variable」にチェック
- インストール
「python」と入力して実行してみる。
Pythonのインタプリタが起動すればAnacondaのインストール終了。
インタプリタを終了するには
> quit()
と入力。
CUDA/cuDnn
謎の半導体メーカーこと、NVIDIAのGPUを使用する際に必要。
使わないなら不要。
自宅PCは低スペックノートでGPU非搭載なのでメモとれなかった。
会社でインストールしたときは以下のページが参考になった。
Chainerについて/インストール
Chainerはディープラーニング用に作られたPython用国産フレームワーク。
ディープラーニングを行うためには
- フレームワークを使う
- WebAPIを使う
などの方法がある。
前者はChainerの他にGoogleのTensorFlowやFacebookのCaffeなどがあり、
後者はIBMのWatson、AmazonのAzuru、富士通のZinraiなどがある。
Chainerは国産ということもあり、日本語でぐぐればある程度の問題なら解決する。
インストールは
> pip install chainer
を叩く。以上。
と言いたいところなのだけれど、
6月からChainer 2.0.0が正式リリースされ、上記コマンドを叩くと2.0.0がインストールされる。
これもPython同様、Python 1.x以下から互換のない仕様変更が存在するため、
Githubなどからソースを取得する際に適したバージョンである必要がある。
> pip install chainer==1.23.0
など、chainerのあとにバージョン番号を指定することで目的のバージョンを取得できる。
バージョンを変更してインストールしなおす場合は、
> pip uninstall chainer
> pip install chainer==x.xx.x --no-cache-dir
とする。「--no-cache-dir」を使用しないと以前のバージョンが入ってしまう場合がある。
また、バージョン2.0.0を使用する場合はcupyもインストールする。
コマンドは
> pip install cupy
失敗する場合は
> easy_install cupy
インストールが完了したら下記コマンドを使用して、インストール状況を確認する。
> pip freeze
chainer(2以上ならcupyも)がインストールされていればOK。
以上、思い出したら追記する。