Upgrade to Pro — share decks privately, control downloads, hide ads and more …

TFv1.0の概要+HighLevelAPI/Keras

 TFv1.0の概要+HighLevelAPI/Keras

Recap of TF Dev Summit( https://tfug-tokyo.connpass.com/event/52643/ ) での発表資料

Norihiro Shimoda

March 20, 2017
Tweet

More Decks by Norihiro Shimoda

Other Decks in Technology

Transcript

  1. TensorFlowのモデル 1. 学習モデルをグラフとし て定義する 2. 学習を実際にどう⾏行行うか も定義する – 学習の評価⽅方法 –

    最適化の⽅方法 – CPU  or  GPU – スタンドアロン or  分散 3. 定義に従って計算処理理を デバイス上で実⾏行行させる
  2. 三⾏行行まとめをもう少し詳しく • Fast – めっちゃパフォーマンス良良くなりました • Flexible – ⾼高レベルAPIが本格的に導⼊入されました •

    Production-‐‑‒ready – APIは安定させます • その他もいろいろあります – デバッガ(tfdbg)、多⾔言語対応など
  3. Fast • パフォーマンスの⼤大幅な向上 – 64GPU上でのInception  v3の処理理が58倍⾼高 速になった! • XLAの導⼊入 –

    Accelerated  Linear  Algebraの略略 – コンパイラ – この後のセッションで詳細を話します https://developers-‐‑‒jp.googleblog.com/2017/03/xla-‐‑‒tensorflow-‐‑‒compiled.html
  4. Production  Ready • APIの安定化 – V0.11,  v0.12辺りの混乱が収束するはずJ – が、後⽅方互換性崩れてますL –

    が、移⾏行行ツールが提供されていますJ https://github.com/tensorflow/tensorflow/tree/master/tensorflow/tools/compatibility
  5. この後のサンプルコード • わかりやすくDNN – 隠れ層3層で全て全結合層 – ユニット数は10,20,10 • サンプルデータとしてはirisデータ –

    クラス数は3 – 特徴量量の次元数は4 • サンプルコード⾃自体はQiitaで解説付きで 公開しています http://qiita.com/rindai87/items/72651c702e9265595047
  6. Keras • TensorFlowとTheanoのラッパーライブ ラリ • ネットワークを直感的に記述できる – ⽣生TFのようにTensorFlowの流流儀を覚える必 要がない •

    アルゴリズム側に集中したい⼈人にとって は良良い選択肢 • 全機能がラップされているわけではない
  7. Layersのイメージ input hidden1 hidden2 hidden3 output hidden1=tf.layers.dense( inputs=input_̲layers,   units=10,

    activation=tf.nn.relu) input_̲layer=tf.reshape(features,   [-‐‑‒1,  4])
  8. Layersのイメージ input hidden1 hidden2 hidden3 output hidden1=tf.layers.dense( inputs=input_̲layers,   units=10,

    activation=tf.nn.relu) input_̲layer=tf.reshape(features,   [-‐‑‒1,  4]) hidden2=tf.layers.dense(…) hidden3=tf.layers.dense(…)
  9. Layersのイメージ input hidden1 hidden2 hidden3 output hidden1=tf.layers.dense( inputs=input_̲layers,   units=10,

    activation=tf.nn.relu) input_̲layer=tf.reshape(features,   [-‐‑‒1,  4]) output_̲layer=tf.layers.dense( inputs=hidden3, units=3) hidden2=tf.layers.dense(…) hidden3=tf.layers.dense(…)
  10. Canned  Estimator • Layers,  Estimatorのお陰で、モデルに対 して標準的なインターフェースが提供さ れている状態になる • これを利利⽤用して、様々なEstimator(つま りアルゴリズム)を提供していく

    – インターフェースが共通化されているので、 同⼀一データに対して様々なアルゴリズムを簡 単に試せるようになる • おっとこれはscikit-‐‑‒learnな感じですね、 と思ったあなた、正解です
  11. Keras正式サポートの恩恵 • 今までKerasから使えていなかった各種TFの 機能が使えるようになる – 分散処理理による学習 – CloudMLでの実⾏行行 • これまではCloudMLのプロビジョニングの段階でKeras

    をpip  installするというハックで解決していた • なお、この解決⽅方法を使ってもKerasからはGCSに置い ているデータを読みにいけないという問題が残っている – TensorFlow Serving – etc…