张量、向量、标量的区别

原文: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的矩阵构成,这符合了我们数学上的定义。

 

posted @   Wy3年半  阅读(1823)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示