Github: https://github.com/yahoo/TensorFlowOnSpark
TensorFlowOnSpark
TensorFlowOnSparkとは何ですか?
TensorFlowOnSparkは、 Apache HadoopとApache Sparkクラスタにスケーラブルな深い学習をもたらします。 深い学習フレームワークのTensorFlowと大きなデータフレームワークであるApache SparkとApache Hadoopの顕著な機能を組み合わせることで、TensorFlowOnSparkはGPUとCPUサーバーのクラスタで分散型の深い学習を可能にします。
TensorFlowOnSparkは、分散型TensorFlowトレーニングとApache Sparkクラスタの推論を可能にします。 既存のTensorFlowプログラムを共有グリッド上で実行するために必要なコード変更の量を最小限に抑えることを目指しています。 Sparkと互換性のあるAPIは、次の手順でTensorFlowクラスタを管理するのに役立ちます。
- スタートアップ – データ/コントロールメッセージのリスナーとともに、エグゼキュータ上でTensorflowメイン関数を起動します。
- データの取り込み
- Readers&QueueRunners – TensorFlowのReaderメカニズムを利用して、HDFSから直接データファイルを読み込みます。
- Feeding – feed_dictメカニズムを使用して、Spark RDDデータをTensorFlowノードに送信します。 HDFSのTFRecordsへのアクセスには、 Hadoop Input / Output Formatを活用しています。
- シャットダウン – エグゼキュータのTensorflowワーカーとPSノードをシャットダウンします。
TensorFlowOnSparkはYahooのプライベートクラウドのHadoopクラスタで、大規模な分散型の深い学習のためにYahooによって開発されました。
なぜTensorFlowOnSparkを使うのですか?
TensorFlowOnSparkは、代替的な深い学習ソリューションを上回るいくつかの重要な利点( 私たちのブログを参照)を提供します。
- 既存のすべてのTensorFlowプログラムを<10行のコード変更で簡単に移行できます。
- 同期/非同期トレーニング、モデル/データ並列処理、推論、TensorBoardのすべてのTensorFlow機能をサポートします。
- サーバー間の直接通信は、利用可能な場合にはより早い学習を実現します。
- Sparkによってプッシュされた、またはTensorFlowによって引き出されたHDFSおよび他のソース上のデータセットを許可する。
- 既存のデータ処理パイプラインや機械学習アルゴリズム(例:MLlib、CaffeOnSpark)と簡単に統合できます。
- クラウドやオンプレミスに簡単に導入:CPU&GPU、イーサネット、インフィニバンド
TensorFlowOnSparkの使用
YARNクラスターおよびAWS EC2クラスターのスタートガイドなどの詳細なドキュメントは、TensorFlowOnSpark wikiサイトを参照してください。 TensorFlowプログラムの変換に役立つ変換ガイドが提供されています。
メーリングリスト
ディスカッションや質問のためにTensorFlowOnSparkユーザーグループに参加してください。
ライセンス
このソフトウェアの使用条件と配布条件は、Apache 2.0ライセンスの対象となります。 用語については、 LICENSEファイルを参照してください。