JL1NIE ’s blog

趣味のアマチュア無線やプログラミングについて徒然と。

おそ松くん

ネットを見ていたらディープラーニングでおそ松くんの6つ子を見分けることができるかという面白い実験をしている人がいました。

goo.gl

ディープラーニングのフレームワークにはいろいろあって、上の方はChainerを使っているようです。私も一時期Caffemotionで撮りためた画像を学習できるか遊んでいたことがありました。結局教師データを大量に作る必要があるのと、元画像をきちんと前処理しなかったせいで、すぐに過学習となってしまいまともな結果は得られず実験は頓挫してしまいました。

最近Googleがディープラーニングの新しいフレームワークTensorFlowをオープンソースで公開したとの話を聞きました。柔軟なpythonAPIを備えており、CUDA/CuDNNにも対応しているそうです。Caffeにハマっていた時にGTX980を購入してしまった私としては、これを試さない訳には行きません。

早速、ここらへんを参考にインストールを始めてみたのですが、手書き文字認識のMNISTでメモリのアロケーションエラーが発生。Stackoverflow.comの議論を見ていると最新のブランチではBFCアロケータというものが用意されており、TITANのようにメモリを豊富に持っていないGTX980などのボードでも動くようです。早速GitHubから直接インストールしたところ、MNISTのデータもGPU版で最後まで通すことができました。近々、この手のベンチマークでは有名なImageNetについてもTensorFlowで実装されたものが出るとのこと。開発元がGoogleということもあり人気は急上昇中のようです。

これを機会に環境をTensorFlowに置き換え、別のものを対象に実験再開してみたいとおもいます。