ChainerからTensorFlowに乗り換える話
最近は機械学習(とりわけディープラーニング)を勉強しています。
ディープラーニングでモデル(ニューラルネットワーク)を作るときは効率を考慮してフレームワークを使います。
私はChainerというフレームワークを入門してみたのですが、色々と嫌になってTensorFlowに移ることにしました( ;∀;)
今日はそんな話を記事に書きます。
目次
スポンサーリンク
なぜフレームワークを使うのか
ディープラーニングに限らず、フレームワークは多くの場面で使われますよね。ソフトウェア開発やウェブ開発などでも使うことでしょう。
理由は効率を重視してだと思います。
煩雑な処理をフレームワークが吸収してくれるので、効率良く開発できます。
実はフレームワークを使わずにモデルを作ってみるという本があったので読んでみました。
この本ではフレームワークを何も使わずに、pythonだけで実現させています。
1からディープラーニングの理論を理解するにはピッタリの本で、とても面白い本でした。
しかし、今後は効率を考えてフレームワークを使うことにします。
代表的なフレームワーク
代表的なフレームワークを3つあげます。(他にもたくさんあるので興味のある人は調べてみてください。)
フレームワーク名 | GitHubのスター数 | 備考 |
Caffe(カフェ) | 15,801 | UCバークレーが開発 |
TensorFlow(テンソルフロー) | 45,159 | Googleが開発 |
Chainer(チェイナー) | 2,128 | 日本発祥のフレームワーク |
(2017年2月8日の情報)
ちょっと前までCaffeの勢いが凄かったようですが、今はTensorFlowが標準になりつつあるようです。
因みにTensorFlowはプロの囲碁棋士を倒したAlphaGoの開発にも使われています。(というかAlaphaGoを開発したのはGoogleの子会社なので当然といえば当然ですよね)
対するChainerはGitHubのスター数を見る限り周回遅れな感じがしますが、使う人も少なからず存在するといった状況です。
初めてのフレームワークにChainerを選んだ理由
私の初めてのフレームワークはChainerに決めました。
理由は、日本語での情報が多いと思ったからです。
上でも述べた通り、この中だとChainerのみが唯一日本発祥のフレームワークです。
ということは、当然、日本語の情報が多いということですよね・・・?
そう思って迷わずChainerを選択しました。
勉強のために本も購入しました。
この本ではChainerの最低限の使い方やモデルのサンプルが紹介されています。
Chainerのダメなところ
Chainerを入門してみてすぐにダメなことがわかりました。
それは、日本語での情報が意外と少ないという点です。
これが決め手となって、このフレームワークを選んだはずでしたが、実際はそうではありませんでした( ;∀;)
実際にChainerを使ってモデルを作ろうとしたところ、行列の計算がうまくできないという問題に遭遇しました。
リファレンスなどで調べてみたのですが、解決できず・・・。
そんな感じでChainerはやめました(^◇^;)
TensorFlowに乗り換えます
最大の強みだと思った「日本語での情報の多さ」が、実際はそうではなかったので、これ以上Chainerを使う理由はありません。
即決で乗り換えを決定しました。
これからはTensorFlowを使うことにします。決め手は「圧倒的な情報量」です。
見ての通りGitHubのスター数が多いですし、Googleが開発しているのでサポートもさぞかし充実していることでしょう。
TensorFlowに乗り換えます。
まとめ
とりあえず、TensorFlowを用いてMNISTをやってみようと思います。
・・・というか実はもうできていますw
制度は95%程度です。初めてにしては上出来だと思ってますw
近いうちに記事に書きます♪( ´θ`)ノ
以上です!
ノシ
スポンサーリンク
関連記事