在使用tensorflow之前先了解下tensorflow的幾個基礎知識:
1 使用圖(graph)來表示計算
2 在回話(session)中執行圖
3 使用張量(tensor)來代表資料
4 通過變數(variables)維護狀態
5 通過供給(feeds)和取回(fetches)將資料傳入或傳出任何操作
實際上,可以將編寫tensorflow**總結為兩部:
1 組裝乙個graph
2 使用session來執行graph中的operation
1 graph and session
(1) 計算圖
假設需要計算乙個表示式(e=
(a+b
)∗(b
+1) ),包含兩個加法和乙個乘法。
當需要計算e時就需要計算c=
a+b 和d=
b+1 ,而計算c時就需要計算a與b,計算d時就需要計算b。這樣就形成了依賴關係,這種有向無環圖就叫做計算圖。
(2)概念說明
tensor: 型別化的多維陣列,可以看作為圖的邊
operation:執行計算的單元,圖的點
graph:一張有邊和點的圖,其表示了需要進行計算的任務。
session:會話,用於執行圖
注意:
graph僅僅定義了所有operation和tensor的流向,沒有進行任何計算。而session根據graph的定義分配資源,計算operation,得出結果。每個operation至少有0個輸入,0個輸出。tensor就是其輸入輸出,並且除了variable指向的tensor外所有的tensor在流入下乙個節點後都不再儲存。
2 資料結構
(1)rank 張量的階
rank一般指資料的緯度,其與線性代數的rank不一樣,
rank
數學形式
0常量 scalar
1向量 vector
2矩陣 matrix
33維tensor(如 32*32*3)
(2) shape 形狀
(3)資料型別
其中: tf.uint8 : 8位無符號。 tf.int8 8位有符號
3 variables
(1) 當訓練模型時,需要使用variables儲存與更新引數。variables儲存在記憶體中,所有tensor一旦擁有variables的指向,就不會在session中丟失。可利用tf.variable()來進行初始化
(2) 初始化
實際在初始化中做了好多任務作:初始化空間,賦初值(等價於tf.assign),並把variable新增到graph等。
初始化操作是在計算前,一般在定義graph時定義graph時定義global_variables_initializer,會在session運算時,初始化所有變數,如果僅僅想初始化部分變數,使用tf.variables_initializer
4 placeholder和feed_dict
定一張圖時,有時候需要手動輸入一些值,這時就需要placeholder和feed_dict了。
先定義乙個placeholder,tf.placeholder(dtype, shape, name)
再利用feed_dict賦值: sess.run(result, feed_dict=)
Linux基礎教程 1
今天我來寫乙個檔案壓縮和解壓的命令 tar命令和vim編輯器教程 tar命令可以為linux的檔案和目錄建立檔案。利用tar,可以為某一特定檔案建立檔案 備份檔案 也可以在檔案中改變檔案,或者向檔案中加入新的檔案。tar最初被用來在磁帶上建立檔案,現在,使用者可以在任何裝置上建立檔案。利用tar命令...
canvas基礎教程知識(1)
基本用法 使用canvas,必須設定width和height,置頂圖形大小區域。不可在style中設定寬高。在body中 6接下來要在整塊畫布中繪圖,就要去的上下文聯絡,需要呼叫getcontext 方法。js var drawing document.getelementbyid canvas v...
(1)pandas 基礎教程
右擊桌面上選擇 open in terminal 開啟終端。在彈出的終端中輸入 ipython 進入python的直譯器中,如圖1所示。圖1 ipython直譯器匯入實驗常用的python包。如圖2所示。import pandas as pd pandas用來做資料處理。import numpy a...