TensorFlow入門

本文主要參考《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()

1.TensorFlow計算模型---計算圖

計算圖是TensorFlow中最基本的一個概念,TensorFlow中的全部計算都會被轉化爲計算圖上的節點。
TensorFlow中的Tensor表示張量(多維數組),TensorFlow中的Flow表示張量之間經過計算流相互轉換的過程。
TensorFlow的每個計算都是圖上的一個節點,節點之間的邊描述了節點之間的依賴關係。
TensorFlow程序通常分爲兩個階段:數組

  1. 定義計算圖中的全部計算
    好比上面的示例代碼中先定義了兩個輸入,而後定義了一個計算來獲得它們的和。
    TensorFlow會自動將定義的計算轉化爲圖上面的節點
    TensorFlow支持經過tf.Graph函數生成新的計算圖,不一樣計算圖上的張量和運算不會共享。
  2. 執行階段
    使用TensorFlow中的會話session來執行定義好的運算。

會話擁有並管理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標識張量的類型爲浮點型。框架

相關文章
相關標籤/搜索