张量与数组

张开发
2026/4/20 14:52:23 15 分钟阅读

分享文章

张量与数组
“张量”Tensor与“数组”Array是两个在不同领域中核心地位相似但内涵有显著区别的概念。简单来说在计算机科学尤其是深度学习中张量通常就指多维数组而在数学和物理学中张量是一个具有严格变换规则的几何对象其内涵远比数组深刻。下面我将从定义、特性和应用场景等方面为你详细解析它们的区别与联系。数组 (Array)计算机中的数据容器数组是计算机科学中最基础、应用最广泛的数据结构之一。核心定义数组是在连续内存空间中存储的相同类型数据元素的集合。关键特性1连续存储所有元素在内存中紧密排列这使得通过索引访问元素的速度极快时间复杂度为 O(1)。访问第i个元素的地址可以通过基地址 i * 元素大小的公式直接计算得出。2类型统一数组中的所有元素必须是同一数据类型如全是整数或全是浮点数。3索引访问通过从0开始的整数下标索引来唯一标识和访问每个元素。主要应用用于高效地存储和处理批量数据是许多复杂算法和数据结构如列表、矩阵的底层构建模块。例如存储一个班级所有学生的成绩或一张图片的像素数据。张量 (Tensor)从物理定律到AI计算张量的概念起源于力学和数学后来在人工智能领域获得了新的生命力。因此它有两个层面的定义。1. 数学与物理学中的张量遵循变换法则的几何实体在数学和物理学中张量是一个更为抽象和严格的几何概念。核心定义张量是一个与坐标系选择无关的几何实体。它的本质在于无论你使用何种坐标系如笛卡尔坐标系、球坐标系来描述一个物理现象张量所代表的物理规律本身是不变的。关键特性1坐标无关性这是张量最核心的特征。例如描述物体受力的应力张量其物理意义不随观察角度坐标系的改变而改变。2严格的变换法则当坐标系发生改变时张量的各个分量会按照一套非常严格的数学规则进行变换以保证整个张量所代表的几何或物理意义不变。3阶Order/Rank张量的“阶”描述了它的复杂程度。0阶张量标量Scalar如温度、质量只有一个数值。1阶张量向量Vector如速度、力有大小和方向。2阶张量矩阵Matrix如应力张量、应变张量。主要应用是描述连续介质力学如弹性力学、流体力学和现代物理学尤其是爱因斯坦的广义相对论不可或缺的语言。2. 计算机科学与AI中的张量多维数据数组在深度学习框架如 TensorFlow, PyTorch中“张量”一词的含义被简化几乎等同于“多维数组”。核心定义一个用于存储和处理数据的N维数组。关键特性1多维结构它是标量、向量、矩阵概念的推广可以拥有任意数量的维度。2运算规则支持广播broadcasting、转置transpose、矩阵乘法等丰富的线性代数运算这些运算被高度优化尤其适合在GPU上进行并行计算。主要应用作为深度学习的基本数据单元贯穿模型训练和推理的全过程。10阶张量一个单独的数值如损失值loss。21阶张量一个向量如神经网络的偏置bias。32阶张量一个矩阵如一个批次batch的样本数据。43阶张量一张RGB彩色图像高×宽×3个颜色通道。54阶张量一个批次的RGB图像批次大小×高×宽×3个颜色通道。核心区别与联系特性维度数组 (Array)张量 (Tensor) - 数学/物理张量 (Tensor) - 计算机/AI核心本质数据存储结构几何/物理实体多维数据容器关键特征连续内存、类型统一、索引访问坐标变换下的不变性多维结构、支持高效运算关注重点如何存储和访问数据数据代表的物理意义及其在不同视角下的关系如何高效计算和处理数据典型应用通用编程、算法实现理论物理、连续介质力学深度学习、科学计算总结来说从结构上看AI中的张量就是一种多维数组。你可以把数组看作是张量在计算机内存中的一种具体实现形式。从内涵上看数学和物理中的张量拥有“坐标变换不变性”这一灵魂这是普通数组完全不具备的。因此当你在编写代码处理数据时你操作的“张量”本质上就是一个功能强大的多维数组。而当物理学家用张量描述宇宙时他们是在使用一种能够揭示自然规律本质的、与观察视角无关的数学语言。

更多文章