张量 作者:马育民 • 2026-01-10 09:51 • 阅读:10004 # 介绍 在人工智能(尤其是深度学习)中,“张量”这个词有一个**更工程化、更实用**的含义,和数学里的严格定义不完全一样,但本质上是相通的。 ### 一句话解释 **张量 = 深度学习里的数据容器,是一种可以表示任意维度数据的多维数组。** 它是神经网络输入、输出、参数(权重)的基本数据结构。 --- # 为什么要用张量? 因为现实世界的数据有各种维度: - 标量(0D):一个数字,比如“温度=25” - 向量(1D):一串数字,比如“一个样本的特征 [1.2, 3.1, -0.5]” - 矩阵(2D):表格,比如“一批样本的特征(样本数 × 特征数)” - 3D:序列数据,比如“文本(句子长度 × 词向量维度)” - 4D:图像数据,比如“批量图片(批次 × 高度 × 宽度 × 通道)” - 5D:视频数据,比如“批量视频(批次 × 时间 × 高度 × 宽度 × 通道)” 深度学习框架(PyTorch、TensorFlow)用张量来统一处理这些数据。 --- # 张量在AI中的作用 1. **存储数据** 图像、文本、声音、标签、模型参数全部用张量表示。 2. **支持GPU加速** 张量可以放在GPU上进行高速计算,这是深度学习训练快的根本原因。 3. **自动求导** 张量记录计算过程,能自动计算梯度(反向传播的核心)。 4. **支持并行计算** 非常适合大规模训练和分布式训练。 # 特点 - 有**形状**(shape):例如 (32, 28, 28, 1) 表示 32 张 28×28 的灰度图 - 有**数据类型**(dtype):如 float32、int64 - 有**设备**(device):CPU 或 GPU - 可以进行**自动求导**(requires_grad=True) # 张量 vs 普通数组 张量 ≈ 多维数组,但更强大: - 支持 GPU - 支持自动求导 - 支持广播 - 支持更多数学操作 - 支持并行计算 # 例子 ```python import torch # 4D张量:批量大小=32,通道=3,高度=224,宽度=224 images = torch.randn(32, 3, 224, 224) # 2D张量:32个样本,每个样本10个特征 features = torch.randn(32, 10) # 1D张量:32个标签 labels = torch.randint(0, 10, (32,)) # 模型参数(也是张量) weight = torch.randn(10, 100, requires_grad=True) ``` # 阶(秩) 张量(tensor),相当于数组的 **维** 在张量中,将 **维** 称之为 **阶(秩)** |阶(秩) |数据类型 | | ------------ | ------------ | |0阶(秩) |常量 | |1阶(秩) |1维数组(向量) | |2阶(秩) |2维数组(矩阵) | |n阶(秩) |n维数组 | # 总结 在人工智能中: - **张量 = 多维数组 + 自动求导 + GPU加速 + 深度学习专用数据结构** - 它是现代深度学习的基础数据单位 - 几乎所有操作(卷积、矩阵乘法、激活函数)都是在张量上进行的 原文出处:http://malaoshi.top/show_1GW2Z8CI42lh.html