张量积计算器
计算两个向量的张量积(外积),并以矩阵或扁平向量形式显示结果。
请输入两个向量,支持逗号或空格分隔的数字,选择输出格式后点击计算。
张量积计算器
计算两个向量的张量积(外积),并以矩阵或扁平向量形式显示结果。
关于张量积计算器
张量积在向量语境下也称为外积,是线性代数中的基本运算。它接收两个向量并生成一个矩阵。设向量 u 有 m 个分量,向量 v 有 n 个分量,则它们的张量积 u ⊗ v 是一个 m × n 矩阵,其中第 i 行第 j 列的元素等于 uᵢ 乘以 vⱼ。这与点积形成鲜明对比,点积会把两个向量压缩成一个标量;也不同于叉积,叉积只适用于三维向量并返回另一个向量。
数学上,如果 u = [u₁, u₂, …, uₘ],v = [v₁, v₂, …, vₙ],那么对所有合法的 (i, j) 都有 (u ⊗ v)ᵢⱼ = uᵢvⱼ。其计算时间复杂度为 O(mn),即使向量长度中等也很高效。张量积是双线性的:任一向量按同样因子缩放,结果也会按相同因子缩放,并且它对向量加法满足分配律。
张量积不满足交换律:u ⊗ v 与 v ⊗ u 通常是不同的矩阵(一个是 m × n,另一个是 n × m),除非 m = n 且存在某些特殊关系。第一个向量总是决定行,第二个向量总是决定列。这种非对称性在物理或机器学习中尤其重要,因为顺序本身就带有物理或语义含义。
在量子力学中,张量积对于描述复合系统不可或缺。两个量子系统组合时,复合系统的状态空间就是各自状态空间的张量积。例如,一个双量子比特系统具有 4 维状态空间,它是两个 2 维量子比特空间的张量积。量子纠缠正是在复合态无法写成各个单独状态的简单张量积时出现的。
在机器学习和数据科学中,张量积(以及更高阶的推广形式“张量”)支撑着 Transformer 模型中的注意力机制、推荐系统中的特征交叉运算,以及图像处理中的可分离卷积。例如,高斯模糊核可以看作是一维水平高斯滤波器与一维垂直高斯滤波器的张量积,从而实现高效的可分离计算。
在信号处理中,把多维滤波器表示为一维滤波器的张量积可以显著节省计算量。此计算器生成的扁平向量表示尤其适合后续需要一维输入的运算,例如全连接神经网络层。
张量积示例
四个演示示例,展示不同的向量维度和输出格式。
| 向量 | 结果 | 说明 |
|---|---|---|
| u = [1, 2], v = [3, 4] | [[3, 4], [6, 8]] | 2 × 2 矩阵。第 (1,1) 项 = 1×3 = 3;第 (2,2) 项 = 2×4 = 8。 |
| u = [1, 2, 3], v = [4, 5] | [[4, 5], [8, 10], [12, 15]] | 3 × 2 矩阵,说明两个向量可以有不同长度。 |
| u = [1, 0], v = [0, 1] | [[0, 1], [0, 0]] | flattened: [0, 1, 0, 0] | 标准基向量的外积。非零项只出现在第 1 行第 2 列。 |
| u = [2, 3], v = [1, 4] | [[2, 8], [3, 12]] | 一般的 2 × 2 情况。结果的每一行都是 v 按 u 的对应分量缩放得到的。 |
如何使用张量积计算器
- 将第一个向量 u 的分量输入为逗号或空格分隔的数字,例如:1, 2, 3。
- 以相同格式输入第二个向量 v。两个向量的分量个数可以不同。
- 选择输出格式:'Matrix Format' 以行列网格显示结果;'Flattened Vector' 以单行显示所有元素。
- 点击计算。结果矩阵(或扁平列表)会与矩阵维度一起显示。
- 点击重置可清空所有字段并开始新的计算。
张量积计算器常见问题
张量积和点积有什么区别?
点积要求两个向量长度相同,并通过把对应分量相乘后求和,返回一个数(标量)。张量积可以接受任意长度的两个向量,并返回一个矩阵:第一个向量的每个分量都会与第二个向量的每个分量相乘。张量积保留了两个向量的全部信息,而点积会把它们压缩成一个数。
两个向量必须等长吗?
不需要。两个向量可以有不同的分量个数。若 u 有 m 个分量、v 有 n 个分量,结果就是一个 m × n 矩阵。这也是张量积比点积等运算更通用的原因之一,因为点积要求长度相等。
张量积满足交换律吗?
不满足。u ⊗ v 通常不同于 v ⊗ u。第一个向量始终对应行,第二个向量始终对应列,因此交换顺序会转置并可能改变结果矩阵的形状。
扁平向量格式表示什么?
扁平向量就是把 m × n 的结果矩阵按行展开成一个包含 mn 个数字的列表。当你需要把张量积作为一维输入传递给其他计算时,它非常有用,例如输入到期望固定长度特征向量的机器学习模型中。
张量积在量子计算中有什么用途?
在量子力学中,多粒子系统的状态由各粒子状态的张量积来描述。对于两个量子比特,如果它们分别处于 [a, b] 和 [c, d] 状态,那么组合系统的状态就是它们的张量积,一个 4 分量向量。这种形式化描述正是量子计算机状态空间指数增长的原因。
它和克罗内克积有什么关系?
克罗内克积是矩阵版张量积的推广。当输入是向量(视为列矩阵)时,u ⊗ v 等于列向量 u 与行向量 vᵀ 的克罗内克积,得到同样的 m × n 矩阵。对一般矩阵而言,克罗内克积会生成块矩阵。