1 靈活性tensorflow不是乙個嚴格的神經網路工具包,只要你可以使用資料流圖來描述你的計算過程,你可以使用tensorflow做任何事情。你還可以方便地根據需要來構建資料流圖,用簡單的python語言來實現高層次的功能。
2 可移植性tensorflow可以在任意具備cpu或者gpu的裝置上執行,你可以專注於實現你的想法,而不用去考慮硬體環境問題,你甚至可以利用docker技術來實現相關的雲服務。
3 提高開發效率tensorflow可以提公升你所研究的東西產品化的效率,並且可以方便與同行們共享**。
4 支援語言選項目前tensorflow支援python和c++語言。(但是你可以自己編寫喜愛語言的swig介面)
5 充分利用硬體資源,最大化計算效能
使用圖(graphs)來表示計算任務
在被稱之為會話(session)的上下文(context)中執行
使用tensor表示資料(張量,n維陣列)
通過變數variable維護狀態
使用feed和fetch可以為任意的操作賦值或者從其中獲取資料
綜述tensorflow 是乙個程式設計系統,使用圖(graphs)來表示計算任務。
圖中的節點被稱之為op (operation 的縮寫)。乙個 op 獲得 0 個或多個 tensor, 執行計算, 產生 0 個或多個 tensor. 每個 tensor 是乙個型別化的多維陣列.。
例如, 你可以將一小**像集表示為乙個四維浮點數陣列, 這四個維度分別是 [batch, height, width, channels]. 批次、高度、寬度、渠道
乙個tensorflow 圖描述了計算的過程。為了進行計算,圖必須在「會話」 裡被啟動。 「會話」 將圖的 op 分法到諸如cpu 或 gpu之類的 裝置 上,同時提供執行op的方法,這些方法執行後,將產生的tensor返回、
在python中,返回的tensor 是numpy ndarray 物件;在c和c++語言中,返回的是tensorflow::tensor 例項
注意,這個圖只是描述了計算過程,最後再統計到會話中被執行。主要原因是為了實現高效數值運算,我們通常會把複雜運算交給其他外部語言實現。不過,從外部計算切換的回來的操作仍然是乙個很大的開銷。如果你用gpu來進行外部計算,這樣的開銷會更大。用分布式的計算方式,也會花費更多的資源用來傳輸資料。tensorflow解決方式是不單獨進行複雜的計算,而是讓我們可以先用圖描述一系列可互動的計算操作,然後全部一起在外執行。
比如:
# 我們進行乙個矩陣乘法
# 建立常量op
matrix1 = tf.constant([[3., 3.]])
# 建立另外乙個常量 op, 產生乙個 2x1 矩陣
matrix2 = tf.constant([[2.], [2.]])
# 建立乙個矩陣乘法 matmul op
product = tf.matmul(matrix1, matrix2)
product這個時候返回的是多少呢?
12?其實這個時候返回的是乙個tensor
需要通話會話執行之後才得到結果
# 定義乙個會話,啟動預設圖
sess = tf.session()
# 呼叫 sess 的 』run()『 方法來執行矩陣乘法 op, 傳入 』product『 作為該方法的引數
# 上面提到,』product『 代表了矩陣乘法op 的輸出,傳入它是向方法宣告,我們希望取回矩陣乘法 op 的輸出
## 整個執行過程是自動化的,會話負責傳遞 op 所需的全部輸入。op通常是併發執行的。
## 返回值 』result『 是乙個 numpy 'ndarray' 物件
result = sess.run(product)
print(result)
# ==> [[12.]]
見下圖,b代表偏置、w代表權重
深度學習 tensorflow的一些理解
深度學習 tensorflow的一些理解 一 使用 tensorflow,你必須明白 tensorflow 使用圖 graph 來表示計算任務.在被稱之為 會話 session 的上下文 context 中執行圖.使用 tensor 表示資料.通過 變數 variable 維護狀態.使用 feed ...
tensorflow 學習筆記之 變數的一些操作
部分內容參考了其他資源,謝謝。使用tf.variable 時,如果系統檢測到重名,會做自動處理,不會報錯。w 1 tf.variable 3,name w w 2 tf.variable 1,name w print w 1.name print w 2.name 執行結果 使用tf.get var...
Tensorflow的一些基本用法
在使用tensorflow中會遇到一些其基本的用法,再次作為記錄備忘 在計算整體的loss是會將不同部分的loss放入乙個集合中,最後計算整體的loss,因此會用到tf.add to collection,具體參考tensorflow中的cifar10的例子,用法如下所示 tf.add to col...