プログラミングの概念

【TensorFlow】TensorFlowにおける「変数」と「プレースホルダー」について

どうも、とがみんです。

以前の記事では、TensorFlowで開発をするのあたって、重要な概念である「データフロープログラミング」について紹介しました。


この記事では、TensorFlowにおける「変数」と「プレースホルダー」について紹介します。

変数とは?

「変数」とは、数値や文字列などのデータを保持する仕組みのことで、値の変更を行うことができる数です。

以下のデータフローに従ったプログラムについて考えます。

上記のデータフロー図では、処理1の出力結果が、変数aに格納されるような流れになってます。

プログラムは以下のようになります。

プログラム

出力

変数の使い方に関して、TensorFlowでは以下のように変数の宣言や更新等を行なっていきます。

  • 変数はtf.Variable(1)のように宣言する。
  • 変数の値はtf.assign(var_a,add1)で更新する。
  • セッション内でtf.initialize_all_variables()を実行し初期化する必要がある。

プレースホルダーとは?

次に、「プレースホルダー」についてです。

TensorFlowにおいて、「プレースホルダー」とは、実行するまで値がわからないような変数を扱う際に、その格納庫的な役割をしてくれるものです。

具体的なデータは実行時に与えられます。

以下のデータフローに従ったプログラムについて考えます。

上記の図では、実行時にプレースホルダーに5が入るようになっています。

プログラムは以下のようになります。

プログラム

プレースホルダーは、処理の実行時に、feed_dictにて値を指定します。

まとめ

TensorFlowでプログラムにあたって重要な「変数」と「プレースホルダー」について説明しました。

参考文献

>TensorFlow入門 ― 変数とプレースホルダー