chainerのエラー
OS X El Captain上でChainer(ver1.5.1)のMnistサンプルを動かしたら、
学習が進まないエラーを見つけた話
numpyが裏で使っている計算ライブラリを変更することで解決できました.
ついでに計算速度も良くなるので是非, Intel MKLを導入しましょう. (追記: 1/30)
pip-install-deeplearning.hatenadiary.jp
学習が進まない
新年あけましておめでとうございます。
今年1年間このブログを続けるようにがんばります。
前回、Macを新調した話をしましたが、
あのあとChainerの動作チェックしたら
おそらくMac環境依存のエラーに出くわしました。
GithubにあるChainerのソースコードには様々なサンプルコードがあって
examples/mnist/train_mnist.py でmnistをニューラルネットワークで解けます。
github.com
通常だとこのように学習が進むのですが、
(こちらから拝借しました)
Python - 【機械学習】ディープラーニング フレームワークChainerを試しながら解説してみる。 - Qiita
epoch 1 train mean loss=0.278375425202, accuracy=0.914966667456 test mean loss=0.11533634907, accuracy=0.964300005436 epoch 2 train mean loss=0.137060894324, accuracy=0.958216670454 test mean loss=0.0765812527167, accuracy=0.976100009084 epoch 3 train mean loss=0.107826075749, accuracy=0.966816672881 test mean loss=0.0749603212342, accuracy=0.97770000577 epoch 4 train mean loss=0.0939164237926, accuracy=0.970616674324 test mean loss=0.0672153823725, accuracy=0.980000005364 epoch 5 train mean loss=0.0831089563683, accuracy=0.973950009048 test mean loss=0.0705943618687, accuracy=0.980100004673
僕のやったところ...
学習エラーが大きすぎるし、学習が進んでいない?事態に。
epoch 1 graph generated train mean loss=103.601352873, accuracy=0.455199998431 test mean loss=248.828919678, accuracy=0.364100000262 epoch 2 train mean loss=477.577273048, accuracy=0.449366665569 test mean loss=570.153792725, accuracy=0.587700000107 epoch 3 train mean loss=910.396587283, accuracy=0.505549998085 test mean loss=735.400798035, accuracy=0.496799997687 epoch 4 train mean loss=1791.45682208, accuracy=0.513516665933 test mean loss=1289.56998779, accuracy=0.512299997807 epoch 5 train mean loss=2166.74419698, accuracy=0.55141666539 test mean loss=2102.33599121, accuracy=0.617300002873
詳しく調査
何がおかしいのかいろいろ調べると中間層の値(n_units)が
1000付近だと異常を起こすことを特定。(簡単のため、epoch=1)
n_units = 900, 910, ... , 1090にしたときのtrain loss(青)
n_units = 990, 991, ... , 1009にしたときのtrain loss(青)
環境
一応、僕の環境はこんな感じ。
OS X El Captian v10.11.2
MacBook Pro (Retina 13-inch、Early 2015)
プロセッサ 3.1 GHz Intel Core i7
メモリ 16 GB 1867 MHz DDR3
Chainer公式に報告
自分では原因を特定できないので、Chainer公式に報告しました。
Chainer (@ChainerOfficial) | Twitter
にリプライを送ると、こちらに似たような問題を抱えた人を発見。
groups.google.com
予想通り、Mac環境に依存したエラーのようですね。
このままだと研究してる時にこのPCから出た数値を信用できなくなるので
次のアップデートぐらいで改善されてると嬉しいです。