張量、向量、標量的區別


原文:https://www.jianshu.com/p/5ae644748f21

要介紹Tensor這個數據類型,我覺得有必要扯一下數學。

我們都知道:

標量(Scalar)是只有大小,沒有方向的量,如1,2,3等

向量(Vector)是有大小和方向的量,其實就是一串數字,如(1,2)

矩陣(Matrix)是好幾個向量拍成一排合並而成的一堆數字,如[1,2;3,4]

 

那么張量(Tensor)是什么呢?呵呵呵呵!大家估計也能猜出來!是按照三維排列的一堆數字?

是的。但是也不完全正確。

其實標量,向量,矩陣它們三個也是張量,標量是零維的張量,向量是一維的張量,矩陣是二維的張量。

 

除此之外,張量還可以是四維的、五維的、。。。等等

數學扯完了,我們擼串代碼操練操練 (*ˉ︶ˉ*)

 1 >>>import torch #引用torch包
 2 
 3 >>>x = torch.Tensor(2,3)  #構造一個2x3的矩陣,沒初始化但仍然會有值
 4 
 5 >>>x
 6 
 7 8.0118e+28  4.5768e-41  8.0118e+28
 8 
 9 4.5768e-41  2.9747e-37  1.4013e-45
10 
11 [torch.FloatTensor of size 2x3]  #可以看出數據類型是浮點數的2x3矩陣

看矩陣看不出張量的道道,我們來點刺激的

 1 >>>y=torch.Tensor(4,2,3) #構造一個4x2x3的張量,沒初始化
 2 
 3 >>>y
 4 
 5 (0 ,.,.) =
 6 
 7 1.00000e-29 *
 8 
 9 0.0000  2.5244  0.0000
10 
11 2.5244  0.0000  0.0000
12 
13 
14 (1 ,.,.) =
15 
16 1.00000e-29 *
17 
18 0.0000  0.0000  0.0000
19 
20 0.0000  0.0000  0.0000
21 
22 
23 (2 ,.,.) =
24 
25 1.00000e-29 *
26 
27 0.0000  0.0000  0.0000
28 
29 0.0000  0.0000  0.0000
30 
31 
32 (3 ,.,.) =
33 
34 1.00000e-29 *
35 
36 0.0000  0.0000  0.0000
37 
38 2.5244  0.0000  2.5244
39 
40 [torch.FloatTensor of size 4x2x3]

我們從上面的返回值可以看出,4x2x3的張量y由4個2x3的矩陣構成,這符合了我們數學上的定義。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM