什麼是張量、數據立體、矩陣、向量和純數
張量就是一個變化量。
張量有零階、一階、二階、三階、四階等等。
零階張量是純量(數值)
一階張量是向量(數值和方向的組合)
二階張量是矩陣(向量的組合)
三階張量是數據立體(矩陣的組合)
四階張量(數據立體的組合)
等等。
1、純量就是一個數值,可以看成是一個數值上的變化量。
2、向量是點到點的變化量,而點可以是一維空間上的點、二維空間上的點、三維空間上的點,等等。
一維空間上的點的變化,好像點(x)在線上的移動,也即是左右的線性變化,變化量可以表示為[x1]。
二維空間上的點的變化,好像點(x,y)在麵上的移動,也即是前後左右的線性變化,變化量可以表示為[x1, y1]。
三維空間上的點的變化,好像點(x,y,z)在體上的移動,也即是前後上下左右的線性變化,變化量可以表示為[x1, y1, z1]。
N維空間上的點的變化,好像點(x,y,z,.....n)在體上的移動,也即是2n個方向的線性變化,變化量可以表示為[x1, y1, z1,……n1]。
3、矩陣是圖形到圖形的變化量,而圖形可以是一維的線、二維的麵、三維的體,等等。
3.1、一維的線的變化,我們知道兩點可以表示一線段,則需要用兩個向量組成的矩陣對兩點進行變化,就能達到對線段的變化。
一維空間 二維空間 三維空間 N維空間
點1的變化量 [x1] [x1, y1] [x1, y1, z1] [x1, y1, z1,……n1]
點2的變化量 [x2] [x2,y2] [x2,y2,z2] [x2, y2, z2,……n2]
而矩陣是向量的組合,兩個向量組合的矩陣分別是:
2*1的矩陣 2*2的矩陣 2*3的矩陣 2*n的矩陣
x1 x1, y1 x1, y1, z1 x1, y1, z1,……n1
x2 x2,y2 x2,y2,z2 x2, y2, z2,……n2
3.2、二維的麵的變化,我們知道三點可以表示一個三角形,四點可以表示一個四邊形,五點可以表示一個五邊形,等等。就拿三角形來說,需要用三個向量組成的矩陣對三點進行變化,就能達到對三角形的變化。
一維空間 二維空間 三維空間 N維空間
點1的變化量 [x1] [x1, y1] [x1, y1, z1] [x1, y1, z1,……n1]
點2的變化量 [x2] [x2,y2] [x2,y2,z2] [x2, y2, z2,……n2]
點3的變化量 [x3] [x3,y3] [x3,y3,z3] [x3, y3, z3,……n3]
而矩陣是向量的組合,三個向量組合的矩陣分別是:
2*1的矩陣 2*2的矩陣 2*3的矩陣 2*n的矩陣
x1 x1, y1 x1, y1, z1 x1, y1, z1,……n1
x2 x2,y2 x2,y2,z2 x2, y2, z2,……n2
x3 x3,y3 x3,y3,z3 x3, y3, z3,……n3
3.3、三維的體的變化,我們知道4點可以表示一個三角堆,5點可以表示四棱錐、6點可以表示一個三棱柱,等等。就拿三角堆來說,需要用四個向量組成的矩陣來對四個頂點進行變化,就能達到對三角堆的變化。
一維空間 二維空間 三維空間 N維空間
點1的變化量 [x1] [x1, y1] [x1, y1, z1] [x1, y1, z1,……n1]
點2的變化量 [x2] [x2,y2] [x2,y2,z2] [x2, y2, z2,……n2]
點3的變化量 [x3] [x3,y3] [x3,y3,z3] [x3, y3, z3,……n3]
點4的變化量 [x4] [x4,y4] [x4,y4,z4] [x4, y4, z4,……n3]
而矩陣是向量的組合,四個向量組合的矩陣分別是:
2*1的矩陣 2*2的矩陣 2*3的矩陣 2*n的矩陣
x1 x1, y1 x1, y1, z1 x1, y1, z1,……n1
x2 x2,y2 x2,y2,z2 x2, y2, z2,……n2
x3 x3,y3 x3,y3,z3 x3, y3, z3,……n3
x4 x4,y4 x4,y4,z4 x4, y4, z4,……n3
4、三階張量可以表示圖像的變化量,圖像與圖形的不同是圖像的點除了有坐標,還具有顏色特性,如RGB、RGBA、YCbcr等表示的顏色。拿RGB的圖像來說,它的變化量包括坐標和色值變化。圖像坐標的變化相當於圖形的變化,即是一個矩陣的變化。色值變化也就是RGB在顏色空間中的一個點變化,也是一個矩陣的變化,圖像變化有兩個矩陣變化,三階張量是矩陣的組合,則可以用三階張量來表示圖像的變化量,如tensor[3,5,5]表示3顏色通道的5*5大小圖形的變化量。
5、四階張量在TensorFlow的神經卷積網絡中,經常用到。下麵舉個例子。
5.1、輸入張量格式:[batch, in_height, in_width, in_channels]
5.2、卷積核格式:[filter_height, filter_width, in_channels, out_channels]
5.3、我們來對輸入圖片進行卷積得到特征圖片。
一張5通道的5*5的輸入圖片:input = [1, 5, 5, 5];
5輸入通道、7輸出通道的3*3大小的卷積核:filter = [3, 3, 5, 7];
strides=[1,1,1,1]表示各個方向步長為1;
padding=“SAME”表示卷積核遍曆到輸入圖片的每個像素,得到的特征圖片與輸入圖片是一樣大小。
tf.shape(tf.nn.conv2d(input, filter, strides=[1,1,1,1], padding=“SAME”));
卷積結果是:[1, 5, 5, 7]
5.4、用圖形來表示上麵的卷積過程。
最後更新:2017-07-14 16:02:35