なぜKerasを使うか?#
このページは https://keras.io/ja/why-use-keras/ からの抜粋です
今日,数え切れない数の深層学習フレームワークが存在します.なぜ他のライブラリではなくて,Kerasを使うのでしょうか?ここでは,Kerasが既存の選択肢に引けを取らない理由のいくつかを紹介します.
Kerasはシンプルかつ柔軟に使用できます#
- Kerasは,機械ではなく,人間のために設計されたAPIです.Kerasは認知的負荷を軽減するためのベストプラクティスに従っています: 一貫性のあるシンプルなAPIを提供し,一般的なユースケースで必要なユーザーの操作を最小限に抑え,エラー時には明確で実用的なフィードバックを提供します.
- これにより,Kerasは簡単に学ぶことが出来て,簡単に使う事が出来ます.Kerasユーザーは,生産性が高く,競争相手よりも,より多くのアイデアを試す事が出来ます. -- これにより,機械学習のコンテストで勝つのに役立ちます.
- 手軽さがあっても,柔軟性がなければいけません: Kerasは低レベルな深層学習言語(特にTensorFlow)と統合しているので,基本の深層学習言語で構築されたものを実装する事が出来ます.特に,
tf.keras
として,Keras APIはTensorFlowワークフローとシームレスに統合されています.
Kerasは事業と研究コミュニティの両方で幅広く使用されています#
Deep learning frameworks ranking computed by Jeff Hale, based on 11 data sources across 7 categories
2018年中旬の時点で,Kerasは25万以上の個人ユーザーがおり,TensorFlow自体を除いて,他の深層学習フレームワークよりも事業と研究コミュニティの両方で多く採用されています(そしてKeras APIはtf.keras
を経由することでTensorFlowの公式なフロントエンドとなっています).
あなたはすでにKerasで構築された機能を日常で使用しています -- Netflix,Uber,Yelp,Instacart,Zocdoc,Squareなど多くの企業がKerasを使用しています.特に,自社製品の核となる部分で深層学習を用いているようなスタートアップ企業で人気があります.
また,Kerasは,深層学習研究者の間でも人気があり,プレプリント・サーバarXiv.orgにアップロードされた,科学技術論文で言及されているフレームワークの中で二番目に使用されています.また,Kerasは,大規模な科学機関,例えば,CERNやNASAの研究者によって採用されています.
Kerasは簡単にモデルを製品化できます#
Kerasのモデルは,他の深層学習フレームワークよりも多くのプラットフォームで,簡単にデプロイできます.
- iOS(Apple’s CoreML経由,Kerasのサポートは正式にAppleから提供されています).こちらがチュートリアルです.
- Android(TensorFlow Androidランタイム経由)例: Not Hotdog app.
- ブラウザ(Keras.jsや,WebDNNなどのGPU利用が可能なJavaScriptランタイム経由)
- Google Cloud(TensorFlow-Serving経由)
- (Flaskアプリのような)Pythonのウェブアプリのバックエンド.
- JVM(SkyMindによって提供されたDL4J モデル経由)
- ラズベリーパイ
Kerasは複数のバックエンドをサポートし,一つのエコシステムに縛られません#
Kerasは複数のバックエンドエンジンをサポートしています.重要な事に,組み込みレイヤーのみで構成されるKerasモデルは,全てのバックエンド間で移植可能です.: 一つのバックエンドを使用して学習したモデルを用いて,別のバックエンドを使用してモデルをロードする事が出来ます.(例えば,デプロイなどで用いる事が出来ます) 使用可能なバックエンドは以下のとおりです.
- TensorFlow バックエンド (from Google)
- CNTK バックエンド (from Microsoft)
- Theano バックエンド
Amazonも現在,KerasのMXNetバックエンドの開発にも取り組んでいます.
また,KerasモデルはCPU以外の様々なハードウェアプラットフォームで学習する事が出来ます.
- NVIDIA GPUs
- Google TPUs(TensorFlowバックエンドかつ,Google Cloud経由)
- OpenGLが使用出来るAMDのようなGPU(the PlaidML Kerasバックエンド経由)
Kerasは複数のGPU,分散学習のサポートが強力です#
- Kerasは複数GPU並列処理のための組み込みサポートもあります.
- UberのHorovodは,Kerasモデルを最もサポートしています.
- KerasモデルはTensorFlow Estimatorsに変換する事が出来ます.また,Google CloudのGPUクラスターを用いて学習が出来ます.
- KerasはDist-Keras (from CERN)と Elephas経由でSpark上で走らせる事が出来ます.
Keras の開発は深層学習の主要企業によってサポートされています#
Kerasの開発は主にGoogleによってサポートされ,Keras APIはTensorFlowにtf.keras
としてパッケージ化されています. 加えて,MicrosoftはCNTK Kerasバックエンドを管理しています. Amazon AWSはMXNetサポートを開発中です.
その他,NVIDIA,Uber,Apple(CoreML)によって,サポートされています.