2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GCPUG 鹿児島 × TFUG 鹿児島(合同ゼミ)#6 Session 2:TensorFlow Dev Summit Recap

Last updated at Posted at 2019-03-21

GCPUG 鹿児島 × TFUG 鹿児島(合同ゼミ)
https://gcpug-kagoshima.connpass.com/event/124260/

Session 2:TensorFlow Dev Summit Recap

TensorFlow Dev Summitトピック紹介

概要

TensorFlow Dev Summit 2019 の中の TensowFlow V2 について復習します。

自己紹介

藤原 秀平 さん TFUG Tokyo

  • 普段はメルペイに努めている
  • Google Developer Expert

Tensorflow V2で大きく変わったこと

  • 大きい違い
    • AutoGraph
    • Eager Execution
  • 1系と2系は全く違うフレームワーク!
    • 今からやるなら、V2を覚えたほうが良い。
    • kerasを使用しているなら、それほど変わらない。

今日アルファ版がリリースされた

  • Eager Execution(define-by-run) by default
  • AutoGraph
    • パイソンのステートメントがtensorflow graph
  • Cleanup APIs
    • tf.kerasがメインのフレームワークに

ドキュメント

  • Youtube
  • Official Document

1.0

  • 定義された時点では実行されない(define and run 定義してから実行する)

ディープラーニングに必要なもの

  • 微分

    • 勾配降下法のために必要
      • 微分するには、どういう計算がされてきたかという履歴がないとできない
  • 定義されたものを実行する、としておけば、勾配降下法がそれほど考えなくても実行できる

  • 必要なのは

    • 計算の履歴
    • どのように計算されてきたか
    • 微分ができる

ではあるが

本来は、微分を計算するだけであれば、すべての計算結果はいらないのでは?

Define and Run, Define by Run

Define and Run(定義してから実行する)

tensorflowは、今はどちらもできる(1.0でも)

Define by Run(定義したら既に実行されている)

chainerが走り

Eager Mode (GradientTape)

GradientTapeの中で実行することで、実行する

v2では、Eager Modeが既定となる

Eager Modeはすべてを解決するのか?

Define and Runは、

  • 利点
    • パフォーマンスが高い(最初に定義されるので最適化される)
    • Deployのしやすさ
      • Pythonのランタイムに依存しない形で、モデルを動かすことができる
      • モバイル端末で動かしやすい
  • 欠点
    • デバッグがしにくい
    • デバッグのしにくいと、実験を早く回せない
      • 大学でやるとChainerが多い
        • プロダクションしなくてもいいので、実験しやすいほうが選ばれる
      • 企業でやるとTensorflowが多い
        • プロダクション重視。(パフォーマンス、ランタイム依存がないほうが良い)

理想(v2が目指しているもの)

  • デバッグしやすい
  • パフォーマンスが高い
  • プロダクションしやすい

Autograph

  • Pythonのグラフを、Tensorflowのグラフに変換するものを作りましょう、というものがAutograph
    • 頭に、@tf.functionをつける
      • iftf.condに変換!
  • パフォーマンスが高い
  • 有効か無効かは、tf.executing_eagerly()で帰ってくる

すべてがgraphに変換できるか?

  • いいえ。ある程度の制限はあります
  • tf.Variableは、最初に作られる

変更点についてのまとめ

  • 普通に使用すると、Eager Modeになる
  • 基本的には、@tf.functionを使う
  • 高レベルAPI(tf.keras)を使う場合には、あまり変わらない。
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?