主に以下の二つの側面でTensorFlowデザイン。
(1)図の図の定義は完全に分離し
私たちは、プログラミングモードは通常、命令型プログラミング(命令的スタイルのプログラミング)とシンボリックプログラミング(シンボリックスタイルのプログラミング)に分かれていることを知っています。命令型プログラミングは、元の論理に従って行われ、我々は理解して通常の意味でのプログラミング、理解しやすいとデバッグです。シンボリックプログラミングの最適化は、埋め込まれた多くを含み、容易に理解し、デバッグが、動作速度が比較的改善されません。従来の深い学習フレームワーク、トーチの典型的な命令型、カフェ、混合方法、及びTensorFlow完全にシンボリックプログラミングを用いMXNetプログラミングモード。シンボル計算変数は一般的に定義し、データフロー図、データフロー図、最終的にコンパイルするために必要なデータフローグラフにおける計算個々の変数の間の所定の関係を確立するために、今回はデータフロー図です。シェルの子は、入力操作が、配置することにより、出力値を形成し、全体のデータストリームが形成されてモデル化する必要がある唯一の後、本当のデータはありません。
例えば:
t = 8 + 7
print("t:", t)
結果が出力されます。
t: 15
次のようにノードでTensorFlow、データフローグラフは、実際には、実行しないように、本当に、TensorFlow APIでの動作に対応しています。
import tensorflow as tf
t = tf.add(8, 9)
print(t)
出力結果は以下のとおりです。
Tensor("Add:0", shape=(), dtype=int32)
上記のコードは実際に動作していない、アクションをのみ定義されているためです。
(2)関与する計算はTensorFlow図を配置しなければなりません。
図面に関与TensorFlow動作が配置され、そしてのみでセッション(セッション)の図で発生しなければなりません。セッションを開いた後、データはノードを充填するために使用することができ、計算、セッションが閉じられた後、算出することができません。このため、セッションが評価操作とテンソルを実行するための環境を提供します。
import tensorflow as tf
# 创建图
a = tf.constant([1.0, 2.0])
b = tf.constant([3.0, 4.0])
c = a * b
# 创建会话
sess = tf.Session()
# 计算 c
print(sess.run(c))
# 关闭会话
sess.close()
結果:
[3. 8.]
PS:すべての技術的な分析や実用的な<< TensorFlow >>第IV章、セクション4.2の李国務委員から撮影