理解張量及張量的Rank和Shape
入門TensorFlow的第一道攔路虎就是對Tensor的理解。 以下是我在理解張量的過程中的一些總結。
什麼是張量
這是bilibili搬運youtube的一個視頻,很直觀的解釋了張量的含義。
張量是對標量,矢量,矩陣的推廣。張量的表達看起來像是數組,其實每個值是在對應空間上的分量的大小。基向量和分量一起形成了張量的表達,他在物理學上的優點是,當基向量發生變化的時候(座標系發生變化或者說是觀察方向發生了變化),對應的分量也會發生變化,但整個張量卻能保持不變。
下圖是對張量從直觀上給出的示意。一階張量可以理解成一個向量,二階張量可以理解成矩陣,三階張量可以理解成立方體,四階張量可以理解成立方體組成的一個向量,五階張量可以理解成立方體組成的矩陣,依次類推。
什麼是Rank
Rank
就是上文所說的階。他是指這個張量擁有的基底向量的數量,也就是他的方向的數量。從上圖中其實能看明白爲什麼是一階、二階、三階。下圖是一個示意。
在實際操作中,可以理解成[
的深度。例如:
rank=1: [0,1,2]
rank=2: [[0,1],[2,3]]
rank=3: [[[0,1],[2,3]],[[4,5],[6,7]]]
什麼是Shape
shape
是形狀,他是指明每一層有多少個元素。比如[2,3,4]是指第一層2個元素,第二層3個元素,第三層4個元素,通過這個我們就可以知道這個張量一共有2 × 3 × 4=24 個元素。上面的rank=3的張量,他的shape是[4,2]。下面這個代碼也能說明問題。
|
|
打印的結果是
[[1 2 3]
[4 5 6]]