tensorFlow用tensor(張量)這種數據結構來表示所有的數據。在Python中,張量一般表示為Numpy數組。 NumPy 是一個科學計算庫, 你球基本上所有AI框架都用到了NumPy。

一個張量主要保存三個屬性:名字(name)、維度(shape)和類型(type)。

1. 階或維度

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

示例:

t = [[1, 2, 3], [4, 5, 6], [7, 8, 9]], shape(3,3),相當於以下的矩陣:

1 2 3

4 5 6

7 8 9

0階張量就是標量(scalar);

1階張量可以認為是一個向量(vector),在python中就是數組array,只有一個數軸axis; Numpy的ndim輸出張量的維數。

2階張量就是矩陣(Matrix),

三階張量就是我們所說的立方體。

對於一個二階張量你可以用語句t[i, j]來訪問其中的任何元素;而對於三階張量你可以用t[i, j, k]來訪問其中的任何元素。

2. 形狀 Shape

TensorFlow文檔中使用了三種記號來方便地描述張量的維度:階,形狀以及維數。

張量的形狀就是shape(),比如:

一個一階的張量[1,2,3]的shape=(3);D0=3

一個二階的張量[[1,2,3],[4,5,6]]的shape=(2,3);D0=2,D1=3

一個三階的張量[[[1],[2],[3]],[[4],[5],[6]]]的shape=(2,3,1);D0=2,D1=3,D2=1

input_shape就是指輸入張量的shape。

3.軸

張量的階數有時候也稱為維度,或者軸,軸這個詞翻譯自英文axis。譬如一個矩陣[[1,2],[3,4]],是一個2階張量,有兩個維度或軸,沿著第0個軸(為了與python的計數方式一致,本文檔維度和軸從0算起)你看到的是[1,2],[3,4]兩個向量,沿著第1個軸你看到的是[1,3],[2,4]兩個向量。

推薦閱讀:

相关文章