オープンデータとプログラミング

これは簡単!ディープラーニングのライブラリ(chainer)をインストール

screenshot
 

こんにちは。

機械学習のアルゴリズムとして、最近はディープラーニング(Deep Learning)が話題になっているので少しいじってみることにしました。
Python用のライブラリを物色していると、chainerというライブラリが良さそうです。
#機能や使い勝手の確認はこれからですが、とにかくインストールが簡単そうです (^^;

必要なパッケージ

githubの説明を見てみると最低限必要なものは以下のとおりです。

  • Python 2.7+, 3.4+
  • NumPy
  • Six 1.9+

 
 
 

これなら、Sixだけバージョン1.9にアップデートすればイケそうです。(もともと1.7はインストール済み)
Sixは、Python 2.xと3.xの差異を吸収するための互換ライブラリで、Sixはバージョン間の差異を吸収するためのユーティリティ関数を提供します。


pip uninstall six    //古いsixをアンインストール
pip install six      //最新のsixをインストール

インストール

次にchainerをインストールします。

pip install chainer

続けてMNISTの手書きデータを認識させるサンプルを実行してみます。
ちなみに、MNISTとは70000サンプルの数字の手書き画像データです。個々の手書き数字データは、28×28ピクセルからなり、各ピクセルは0から255の値を取ります。
機械学習の研究用のデータとしてよく利用されているデータセットです。

では、まずはgithubからwgetを使ってサンプルコードをダウンロード。

wget --no-check-certificate https://github.com/pfnet/chainer/archive/v1.1.2.tar.gz

証明書の検証が正しくできなかったので”–no-check-certificate”オプションを付けました。

ダウンロードしたファイルを解凍します。

tar xzf v1.1.2.tar.gz
python chainer-1.1.2/examples/mnist/train_mnist.py

実行すると次のように訓練とテストが繰り返されていきます。

load MNIST dataset
Downloading train-images-idx3-ubyte.gz...
Done
Downloading train-labels-idx1-ubyte.gz...
Done
Downloading t10k-images-idx3-ubyte.gz...
Done
Downloading t10k-labels-idx1-ubyte.gz...
Done
Converting training data...
Done
Converting test data...
Done
Save output...
Done
Convert completed
('epoch', 1)
graph generated
train mean loss=0.279352151516, accuracy=0.913850001084
test  mean loss=0.121526297252, accuracy=0.963000004292
('epoch', 2)
train mean loss=0.139287877449, accuracy=0.957866669993
test  mean loss=0.0862284902227, accuracy=0.973300007582

<<省略>>

('epoch', 20)
train mean loss=0.0446550305256, accuracy=0.987416676482
test  mean loss=0.0657925747195, accuracy=0.982500008345

インストールまでは簡単でしたね。

サンプルを動かしてみる

続いてword2vecのサンプルを動かしてみます。

C:\temp\chainer-1.1.2\examples\ptb>ls
README.md  download.py  train_ptb.py
C:\temp\chainer-1.1.2\examples\ptb>python download.py
C:\temp\chainer-1.1.2\examples\ptb>ls
README.md    ptb.test.txt   ptb.valid.txt
download.py  ptb.train.txt  train_ptb.py

ptb.test.txt、ptb.valid.txt、ptb.train.txtの3つのファイルができます。

ptb.train.txtを、chainer-1.1.2\examples\word2vecは以下に置きます。

train_word2vec.pyを実行します。

python train_word2vec.py

この処理はかなり時間がかかります。

終了するとモデルのファイル(model.pickle)ができています。

search.pyを実行します。
プロンプトにワードを入れると関連する語が表示されます。
ibmと入力してみます。

python search.py
>> ibm
query: ibm
computer: 0.458478599787
software: 0.446164906025
mainframe: 0.416040301323
computers: 0.409894824028
aborted: 0.399061322212
>>

関連書籍

Comments are closed.