【とりあえず動かすChainer】mnist

前回作成した環境を使って、実際にChainerを動かしてみる。

rew05.hatenablog.com

 

 

mnistとは

mnistとは、0~9までの手書き文字のデータセットのこと。

このデータセットを使用して手書き文字判別を行うことが、動作確認およびニューラルネットワーク界の「Hello World!」になっている様子。

ソースコードは以下からダウンロード。

github.com

 

mnistを動かす

ダウンロードが完了したら、

 chainer\examples\mnist

の配下のファイルを作業ディレクトリにコピー。

f:id:rew05:20170627005302j:plain

今回はC:\python\mnistに設置。

 

配置したフォルダでコマンドプロンプトを開き、下記コマンドを実行。

> python train_mnist

f:id:rew05:20170627005514j:plain

(GPUを使用する場合は引数に「-g 0」を付ける。)

 

頑張れぼくのVAIO(Core i 5 メモリ4GB)

f:id:rew05:20170627005713j:plain

 

データセットのダウンロードが終わり、学習を始める。

18分ほどかかる模様。会社のハイスペックマシンだと2分かからなかった。GPU欲しい。

f:id:rew05:20170627005737j:plain

 

待つこと18分。

f:id:rew05:20170627005926j:plain

 

無事完了した様子。

作業フォルダを見るとresultフォルダが作成されているはず。

f:id:rew05:20170627010117j:plain

 

この中の「snapshot_iter_12000」を使用して手書き文字を判別する。

中身はネットワークの重みになっている。

 

任意の画像でのテストは後程編集

【とりあえず動かすChainer】Chainer環境構築

 

上司「来月からChainerを使ってDeepLearningやってくれ」

ぼく「!?」

という、急にDeepLearningをやれと言われてどこから手を付けていいか分からない人(自分)向けの環境構築メモ。

各要素のメモを簡単に残しつつ、他の方のページへリンク。

 

目次

 

Pythonについて

www.python.org

書きやすく読みやすい、教育用に開発された言語とのこと。

概要はさておき、まずPythonについて説明したいのは、

PythonにはPython2系と呼ばれるものとPython3系と呼ばれるものの

2種類あるということ。

これは単純にバージョン番号に起因する呼び方だけれど、

問題なのは後方互換がないということ。ことこと。

なのでChainerを使ってやりたいことが決まっている場合、

それがPython2系用のソースだったりしないか確認する必要がある。

 

上記が問題なかったり、よくわからなかったら

とりあえず3系を使用すればよい。

仮想環境やライブラリなどで2系用ソースも

のちのち動かすことは可能のため。

 

 

Anacondaのインストー

Download Anaconda Now! | Continuum

Anacondaとは、PythonPython用の便利なライブラリやIDEを一度にインストールできるしゅごいソフト。

ライブラリの依存関係とか考えなくて良くて、インストーラ一発でやってくれる。(ディストリビューションというらしい。)

WindowsMacOSLinuxに対応しているよう。今回はWindows前提で記載する。

 

リンク先からインストーラをダウンロードする。

Python2系、3系でインストーラが分かれているので注意。前述の通り仮想環境などでなんとかなるので、理由がなければ3系のインストーラを使用する。

  1. インストーラを起動
  2. I Agree
  3. インストールする範囲を選択(ログインユーザのみorPC全体)
  4. ファイルのインストール先を選択
  5. 「Add Anaconda to the system PATH enviroment variable」にチェック
  6. インストー

 

インストールが完了したらコマンドプロンプトを開き、

python」と入力して実行してみる。

Pythonインタプリタが起動すればAnacondaのインストール終了。

インタプリタを終了するには

> quit()

と入力。

 

CUDA/cuDnn

謎の半導体メーカーこと、NVIDIAGPUを使用する際に必要。

使わないなら不要。

自宅PCは低スペックノートでGPU非搭載なのでメモとれなかった。

会社でインストールしたときは以下のページが参考になった。

qiita.com

 

 

 

Chainerについて/インストー

Chainerはディープラーニング用に作られたPython用国産フレームワーク

ディープラーニングを行うためには

などの方法がある。

前者は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。

 

 

以上、思い出したら追記する。