TensorFlow #Session

TensorFlowのプログラミングは、今までのPythonのプログラミングのスタイルと大きく異なる点がある。Apache SparkののScalaと同様に、分散処理、メモリの有効活用等を考慮に入れた遅延実行型のスタイルにある。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
プログラムの前半では、ひたすらにTensorのFlow Graphを描く。後半でセッションを立ち上げて、変数にデータをロードして実行する。要するにSessoin()がプログラムの実行の実体である。
セッションSession()の基本構造は、「1 + 2 = 3」の演算で表せば、以下の通り:

Pythonインタープリター風にインターラクティブなセッションの記述としたければ、InteractiveSession()が用意されているので、以下のように記述できる。

GraphとSessionとの関係、とくに学習をGraphで組んで、Sessionで実行させるという部分を理解する機械学習の基本部分では、たいていのアルゴリズムでは、学習データをバッチに分けて、Epoch数を繰り返すバッチ学習が適応されるが、Sessionので構造は、以下のように二重のforループ構造として記述されることとなる。

また、後ほどに具体的なアルゴリズムに適応してみる。