首页 动画

张量收缩

时间: 2024-10-18 16:46:49

张量收缩(Tensor Contraction)是指在张量运算中对特定的维度执行内积,以减少张量的阶数,并且得到一个新的张量。收缩可以看作是对某些维度进行求和,常用于高阶张量的处理与计算。


张量收缩的基本概念


假设我们有一个 $ n $ 阶张量 $ T $,其维度为 $ (d_1, d_2, \ldots, d_n) $。若选择两个维度进行收缩,那么通常是对这些维度对应的元素进行求和,从而得到一个阶数降低的张量。


例子


1. 二阶张量的收缩(相当于内积):

   $ T = \left[ \begin{array}{cc}   1 & 2 \\   3 & 4   \end{array} \right] \hspace{10mm}(2 \text{阶张量,即矩阵}) $

   对其进行收缩,比如对主对角线收缩:

   $   S = \sum_{i} T_{i,i} = 1 + 4 = 5   $

   这可以看作是这个矩阵的迹(Trace)。


2. 三阶张量的收缩

   考虑一个三阶张量 $ T_{ijk} $,对 $ j $ 和 $ k $ 维度进行收缩。

   $   C_{i} = \sum_{j,k} T_{ijk}   $

   结果是一个一阶张量(向量),维度为 $ d_1 $。


3. 更高阶张量的收缩

   对于更高阶的张量,收缩可以使用任意两个维度。例如,对于四阶张量 $ T_{ijkl} $,可以选择 $ i $ 和 $ j $ 两个维度进行收缩:

   $   S_{kl} = \sum_{i,j} T_{ijkl}   $

   结果是一个二阶张量。


收缩的性质


- 线性性:张量收缩是线性的,可以操作在张量的线性组合上。

- 形状变化:收缩操作会减少张量的维度,使得计算更为简单。

- 广泛应用:收缩在物理学(如广义相对论和流体力学)、机器学习(如神经网络中的张量操作)、计算机视觉等领域得到广泛应用。


小结


张量收缩是一种重要的运算方式,在处理高维数据和模型时,了解和掌握其原理和应用至关重要。在实际编程和算法实现中,很多数值库(如 NumPy、TensorFlow、PyTorch)都提供了实现张量收缩的方便函数。


上一个 张量各类乘法怎么算 高中物理知识列表 下一个 两个重要的极限

问答

Latest

工具

© 2019-现在 简易物理,让物理教学更简单

沪ICP备17002269号