本文主要參考《Tensorflow 實戰Google深度學習框架》一書介紹TensorFlow的基本概念。
TensorFlow的Hello World示例程序以下:python
#coding:utf8 #經過import操做加載TensorFlow: import tensorflow as tf #定義兩個常量向量a b a = tf.constant([1.0,2.0],name="a") b = tf.constant([2.0,3.0],name="b") #將兩個向量加起來 result = a+b #生成一個會話 sess = tf.Session() #經過會話來計算結果 xxx = sess.run(result) print(result) #Tensor("add:0", shape=(2,), dtype=float32) print(xxx) #[ 3. 5.] sess.close()
計算圖是TensorFlow中最基本的一個概念,TensorFlow中的全部計算都會被轉化爲計算圖上的節點。
TensorFlow中的Tensor表示張量(多維數組),TensorFlow中的Flow表示張量之間經過計算流相互轉換的過程。
TensorFlow的每個計算都是圖上的一個節點,節點之間的邊描述了節點之間的依賴關係。
TensorFlow程序通常分爲兩個階段:數組
會話擁有並管理TensorFlow程序運行時的全部資源
TensorFlow中使用會話的模式有兩種:
(1)明確調用會話生成和關閉函數:sess = tf.Session() sess.run() sess.close()
(2)利用python的上下文管理機制,將全部的計算放在with中,with tf.Seesion() as sess:sess.run()
另外:在設定默認會話以後,能夠經過Tensor.eval()函數計算張量的取值:sess = tf.Session() with sess.as_default():print(result.eval())
直接生成默認會話函數sess = tf.InteractiveSession() sess即爲默認會話函數session
在TensorFlow中,全部的數據都以張量的形式表示,零階張量標識一個數,一階張量爲向量,也就是一個一維數組,n階張量能夠理解爲n維數組。
張量中並無真正的保存數字,它保存的只是如何獲得這些數字的計算過程。例如實例代碼中的result輸出結果爲Tensor("add:0", shape=(2,), dtype=float32)--add:0表示result這個張量是計算節點「add」輸出的第一個結果;shape=(2,)標識張量的維度信息,說明了張量result是一個一維數組,數組長度爲2;dtype=float32標識張量的類型爲浮點型。框架