KerasでDeep Learning:導入
導入
年齢を重ねるにつれて、能力が落ちてきて危機感を感じています。こまめに努力しようと思います。
最近、Deep Learningを使うふりをしていて、申し訳程度にChainerを使っています。Chainerも書きやすいのですが、日本人ユーザがメインなので、Tensorflowなどと比較するとナレッジの蓄積具合がどうしても気になってしまいます。ただし、Tensorflowは慣れると良いらしい(同僚談)のですが、ちょっと導入ハードルが高いなあと二の足を踏んでいました。
と思っていたら、KerasというTensorflowやTheanoをバックエンドとしたフレームワークが良さそうとの噂(またまた同僚談)を耳にしました。さらに、最近はCNTKもバックエンドに指定できるようになっているらしく、将来はKerasがDeep Learningのフレームワークのハブ的な存在になるのでは、と思いました。そのため、Kerasをある程度使えることはDeep Learningで分析をやっていく上で無駄にはならないだろうという判断をしてます。
Keras
Kerasのページ(Keras Documentation)では、以下のような説明がされています。
Kerasは,Pythonで書かれた,TensorFlowまたはCNTK,Theano上で実行可能な高水準のニューラルネットワークライブラリです. Kerasは,迅速な実験を可能にすることに重点を置いて開発されました. アイデアから結果に到達するまでのリードタイムをできるだけ小さくすることが,良い研究をするための鍵になります.
次のような場合で深層学習ライブラリが必要なら,Kerasを使用してください:
- 容易に素早くプロトタイプの作成が可能(ユーザーフレンドリー,モジュール性,および拡張性による)
- CNNとRNNの両方,およびこれらの2つの組み合わせをサポート
- CPUとGPU上でシームレスな動作
TensorFlow、Theano、CNTKのラッパー的な印象を受けます。裏ではこれらが動くけど、ユーザー側が書かなければならないコードは直感的でわかりやすくなっているようです。
インストール
私の環境は以下です。
- MacOS Sierra, 10.12.2
- Python3.6.1, anaconda4.4.0
- pip 9.0.1
ある程度新しいVersionのpipが導入されていれば、pipで簡単にインストールできます。Kerasをpipで入れるとTheanoも同時にインストールされます。ここでは、TensorFlowをバックエンドで動かすことを見越してTensorflowも入れておきます。
$ pip install tensorflow $ pip install keras
あとはPythonを起動してkerasのimportが成功すればOKです。とりあえず、現時点ではバックエンドで動くフレームワークのデフォルトがTensorflowのようです。
注意:pipのVersionが古いとTensorflowがインストールできない
以下のようなメッセージが出てきます。
# pip install tensorflow Downloading/unpacking tensorflow Could not find any downloads that satisfy the requirement tensorflow Cleaning up... No distributions at all found for tensorflow
この場合は
$ pip install -U pip
をしてから再びpipでTensorflowを入れましょう。
それでもだめなら、、、環境構築をやり直し…ですかね。。
Next Step
実際に例を用いて実践します。まずはMNISTあたりで。