TensorFlow神經網絡機器學習使用詳細教程,此貼會更新!!!

運行 TensorFlow
打開一個 python 終端:python

 1 $ python
 2 >>> import tensorflow as tf
 3 >>> hello = tf.constant('Hello, TensorFlow!')
 4 >>> sess = tf.Session()
 5 >>> print sess.run(hello)
 6 Hello, TensorFlow!
 7 >>> a = tf.constant(10)
 8 >>> b = tf.constant(32)
 9 >>> print sess.run(a+b)
10 42
11 >>> 


使用 TensorFlow, 你必須明白 TensorFlow:
• 使用圖 (graph) 來表示計算任務.
• 在被稱之爲 會話 (Session) 的上下文 (context) 中執行圖.
• 使用 tensor 表示數據.
• 經過 變量 (Variable) 維護狀態.
• 使用 feed 和 fetch 爲任意操做輸入和輸出數據.編程


綜述
TensorFlow 是一個編程系統, 使用圖來表示計算任務. 圖中的節點被稱之爲 op(operation 的縮寫). 一個 op得到 0 個或多個 Tensor , 執行計算, 產生 0 個或多個 Tensor . 每一個 Tensor 是一個類型化的多維數組. 例如, 你能夠將一小組圖像集表示爲一個四維浮點數數組, 這四個維度分別是 [batch, height, width, channels] .一個TensorFlow 圖 描述 了計算的過程. 爲了進行計算, 圖必須在 會話 裏被啓動. 會話 將圖的 op 分發到諸如 CPU 或 GPU 之類的 設備 上, 同時提供執行 op 的方法. 這些方法執行後, 將產生的 tensor 返回. 在 Python 語言中, 返回的 tensor 是 numpy ndarray 對象; 在 C 和 C++ 語言中, 返回的 tensor 是 tensorflow::Tensor 實例.數組

計算圖
TensorFlow 程序一般被組織成一個構建階段, 和一個執行階段. 在構建階段, op 的執行步驟 被描述成一個圖.在執行階段, 使用會話執行執行圖中的 op.
例如, 一般在構建階段建立一個圖來表示和訓練神經網絡, 而後在執行階段反覆執行圖中的訓練 op.
TensorFlow 支持 C, C++, Python 編程語言. 目前, TensorFlow 的 Python 庫更加易用, 它提供了大量的輔助函數來簡化構建圖的工做, 這些函數還沒有被 C 和 C++ 庫支持.
三種語言的會話庫 (session libraries) 是一致的.網絡

構建圖
構建圖的第一步, 是建立源 op (source op). 源 op 不須要任何輸入, 例如 常量 (Constant) . 源 op 的輸出被傳遞給其它 op 作運算.
Python 庫中, op 構造器的返回值表明被構造出的 op 的輸出, 這些返回值能夠傳遞給其它 op 構造器做爲輸入.
TensorFlow Python 庫有一個 默認圖 (default graph) , op 構造器能夠爲其增長節點. 這個默認圖對 許多程序
來講已經足夠用了. 閱讀 Graph 類 文檔 來了解如何管理多個圖.session

 1 import tensorflow as tf
 2 # 建立一個常量 op, 產生一個 1x2 矩陣. 這個 op 被做爲一個節點
 3 # 加到默認圖中.
 4 #
 5 # 構造器的返回值表明該常量 op 的返回值.
 6 matrix1 = tf.constant([[3., 3.]])
 7 # 建立另一個常量 op, 產生一個 2x1 矩陣.
 8 matrix2 = tf.constant([[2.],[2.]])
 9 # 建立一個矩陣乘法 matmul op , 把 'matrix1' 和 'matrix2' 做爲輸入.
10 # 返回值 'product' 表明矩陣乘法的結果.
11 product = tf.matmul(matrix1, matrix2)

 


默認圖如今有三個節點, 兩個 constant() op, 和一個 matmul() op. 爲了真正進行矩陣相乘運算, 並獲得矩陣乘法的 結果, 你必須在會話裏啓動這個圖.併發

在一個會話中啓動圖
構造階段完成後, 才能啓動圖. 啓動圖的第一步是建立一個 Session 對象, 若是無任何建立參數, 會話構造器
將啓動默認圖.
欲瞭解完整的會話 API, 請閱讀Session 類.編程語言

# 啓動默認圖.
sess = tf.Session()
# 調用 sess 的 'run()' 方法來執行矩陣乘法 op, 傳入 'product' 做爲該方法的參數.
# 上面提到, 'product' 表明了矩陣乘法 op 的輸出, 傳入它是向方法代表, 咱們但願取回
第 1 章 起步 | 21
# 矩陣乘法 op 的輸出.
#
# 整個執行過程是自動化的, 會話負責傳遞 op 所需的所有輸入. op 一般是併發執行的.
#
# 函數調用 'run(product)' 觸發了圖中三個 op (兩個常量 op 和一個矩陣乘法 op) 的執行.
#
# 返回值 'result' 是一個 numpy `ndarray` 對象.
result = sess.run(product)
print result
# ==> [[ 12.]]
# 任務完成, 關閉會話.
sess.close()
相關文章
相關標籤/搜索