tensorflow on mobile
Post on 14-Feb-2017
165 Views
Preview:
TRANSCRIPT
古川 新 Arata Furukawa
● 日本Androidの会 運営委員● 日本Androidの会 学生部でイベント企画や
開発、運営をしています。● ピカピカのだいがく1年生● プログラミング、イラスト、デザインが趣味● なんでもします!
データフローグラフ型汎用数値演算ライブラリ
Deep Learningは莫大な計算資源を要求します。
その要求に応えるためには、抽象的でスケーラビリティかつポータビリティな、非同期並列に実行可能な数値演算の仕組みが必要でした。
TensorFlowはまさにそれを実現するライブラリです。
Deep Learningに限らず、このライブラリ自体はどんな計算であっても応用可能です。
(オープンソース・ソフトウェア)
TensorFlow Graph
TensorFlowはあらゆる数学演算をノードとエッジの有向グラフで表現します。
また、TensorFlowグラフはProtocol Buffers形式でシリアライズできます。
シリアライズされた抽象グラフは他のプラットフォーム・アーキテクチャ・デバイスでも扱えます。
Deep Neural Networks
TensorFlowは、グラフで表現可能な演算であれば、なんでも扱えます。
ディープニューラルネットワーク(DNN)は巨大な行列演算の式で表現されます。
つまり、DNNも同様にTensorFlowグラフとして表現することができます。
Distributed TensorFlow
TensorFlowの真価は分散処理にあります。TensorFlowではデータ並列が透過的に行なえます。
コードにほとんど手を加えることなく、マシンリソースにスケールした適切なスケジューリングの最適化などを行い、並列演算をスケールアウトします。
高度な分散処理数値演算ライブラリ、それがTensorFlowの真の姿です。
「Large Scale Distributed Systems for Training Neural Networks (Jeff Dean & Oriol Vinyals Google)」より引用
学習の演算コスト
1. 膨大な回数の反復学習が必要↑ほぼこれ
2. 誤差の逆伝搬など学習用の計算量が多い
一般的に知られているように、訓練には莫大な計算資源が必要となる。
「AlphaGo の試合に用いられた Google のディープラーニング専用サーバ」Google Cloud Platform Japan Blogより
“TensorFlow Android Camera Demo
https://github.com/tensorflow/tensorflow/tree/master/tensorflow/examples/android
DataServer
RunTensorFlow
FirebaseRealtime Database
C++ Java
Protocol Buffers
JNIReversi
OSUSHIの構成:Androidアプリ側
HTTPS
Android App
True Portability
TensorFlowグラフは非常にポータビリティが高い。
配布されたモデルを利用したり、更にそのモデルを訓練したりすることが容易です。
→抽象化されたグラフを表現したProtocol Buffers形式のテキストorバイナリデータでしかないから。
新しいアプリ開発の形?
ニューラルネットワークは処理能力に乏しいモバイルプラットフォームでも利用できます。
Deep Learningは、モデルさえあれば一般的なアプリに組み込むことが可能な段階にあるのです。
top related