1. 程式人生 > >TensorFlow中的張量是什麼

TensorFlow中的張量是什麼

TensorFlow用張量這種資料結構來表示所有的資料.你可以把一個張量想象成一個n維的陣列或列表.一個張量有一個靜態型別和動態型別的維數.張量可以在圖中的節點之間流通.

在TensorFlow系統中,張量的維數來被描述為階.但是張量的階和矩陣的階並不是同一個概念.張量的階(有時是關於如順序或度數或者是n維)是張量維數的一個數量描述.比如,下面的張量(使用Python中list定義的)就是2階(二維).

    t = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

你可以認為一個二階張量就是我們平常所說的矩陣,一階張量可以認為是一個向量.對於一個二階張量你可以用語句t[i, j]來訪問其中的任何元素.而對於三階張量你可以用't[i, j, k]'來訪問其中的任何元素.

數學例項Python 例子
0純量 (只有大小)s = 483
1向量(大小和方向)v = [1.1, 2.2, 3.3]
2矩陣(資料表)m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
33階張量 (資料立體)t = [[[2], [4], [6]], [[8], [10], [12]], [[14], [16], [18]]]
nn階 (自己想想看)....

張量是所有深度學習框架中最核心的元件,因為後續的所有運算和優化演算法都是基於張量進行的。幾何代數中定義的張量是基於向量和矩陣的推廣,通俗一點理解的話,我們可以將標量視為零階張量,向量視為一階張量,那麼矩陣就是二階張量。

舉例來說,我們可以將任意一張RGB彩色圖片表示成一個三階張量(三個維度分別是圖片的高度、寬度和色彩資料)。如下圖所示是一張普通的水果圖片,按照RGB三原色表示,其可以拆分為三張紅色、綠色和藍色的灰度圖片,如果將這種表示方法用張量的形式寫出來,就是圖中最下方的那張表格。

這裡寫圖片描述

這裡寫圖片描述

圖中只顯示了前5行、320列的資料,每個方格代表一個畫素點,其中的資料[1.0, 1.0, 1.0]即為顏色。假設用[1.0, 0, 0]表示紅色,[0, 1.0, 0]表示綠色,[0, 0, 1.0]表示藍色,那麼如圖所示,前面5行的資料則全是白色。

將這一定義進行擴充套件,我們也可以用四階張量表示一個包含多張圖片的資料集,其中的四個維度分別是:圖片在資料集中的編號,圖片高度、寬度,以及色彩資料。