Fresopiya
場所にもお金にも時間にも、何にも縛られない自由な状態になったら一体人間は何をしてどこに向かうのか。 まずはとにかく自由を目指すエンジニアのブログです。

哲学とプログラミングとブログがメインになるかと。
TensorFlow

【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入門 ― 変数とプレースホルダー