#############下面引用自知乎#############################
张量(tensor)是多维数组,目的是把向量、矩阵推向更高的维度。更具体点,也即是说:
张量的通俗理解和计算
把三维张量画成一个立方体:
张量的通俗理解和计算
我们就可以进一步画出更高维的张量:
张量的通俗理解和计算
从数据结构上来看,张量就是多维数组。
这个定义本身没有错,但是没有真正反映张量的核心。

#############上面引用自知乎#############################
好了,物理中的张量什么意思呢?
张量的通俗理解和计算
从上图可以看到,每个方向的红色的力向量(1D张量)可以分别表示为:
[5,78,2,34,0]、
[6,79,3,35,1]、
[7,80,4,36,2]
那么一系列张力的集合就可以表示为如下2D张量

>>> import numpy as np
>>> x=np.array([[5,78,2,34,0],
...             [6,79,3,35,1],
...             [7,80,4,36,2]])
>>> x.ndim
2

也就是说,可以理解为:
2D张量是1D张量的有序的集合(集合这个词语这里不精确,只是为了便于理解)

同样的,3D张量也是2D张量的集合,3D张量举例:

>>> import numpy as np
>>> x=np.array([[[5,78,2,34,0],
...             [6,79,3,35,1],
...             [7,80,4,36,2]],
...             [[5,78,2,34,0],
...             [6,79,3,35,1],
...             [7,80,4,36,2]],
...             [[5,78,2,34,0],
...             [6,79,3,35,1],
...             [7,80,4,36,2]]])
>>> x.ndim
3

张量的点积运算:

>>> import numpy as np
>>> x=np.array([[5,78,2,34,0],
...              [6,79,3,35,1],
...              [7,80,4,36,2]])
>>> y=np.dot(x,x.T)
>>> y
array([[7269, 7388, 7507],
       [7388, 7512, 7636],
       [7507, 7636, 7765]])

可以看到2D张量点积结果依然是2D张量

相关文章:

  • 2022-12-23
  • 2021-12-30
  • 2021-09-30
  • 2021-10-03
  • 2021-10-20
  • 2021-05-11
  • 2021-10-02
  • 2021-12-02
猜你喜欢
  • 2021-09-21
  • 2021-05-25
  • 2022-01-02
  • 2021-04-12
  • 2021-10-29
相关资源
相似解决方案