深度学习篇---张量 “张量”是现代AI和深度学习的基石更是TensorRT、PyTorch这些工具统一处理数据的“通用货币”。❓ 张量是什么简单来说张量就是一个多维数组是标量、向量、矩阵向更高维度的自然推广。标量 (0阶张量)一个单一的数字比如你的体温36.5℃。向量 (1阶张量)一维数字数组比如一个RGB颜色[255, 0, 0]。矩阵 (2阶张量)二维数字网格比如一张灰度图每个格子存一个像素值。高阶张量 (3阶及以上)立方体或更高维的数字容器。比如一张彩色图片就是3阶张量维度是[高, 宽, 通道(RGB)]而一段视频是4阶张量一次处理的一批视频就是5阶张量。从数学对象的角度看张量的关键在于它的性质不随坐标系改变而变化但作为开发者我们完全可以把它当“多维数组”用不必深究背后的数学。 为什么AI计算非要“张量化”把一切数据都表示成张量主要有三大原因统一的数据表示无论处理的是图片、文本、语音还是点云都能统一表达为张量这为构建通用框架如PyTorch和处理流程如TensorRT优化提供了基础。极致的并行计算AI核心运算如矩阵乘法天生适合并行。GPU拥有数千个计算核心其硬件架构就是为同时处理大量数据而生的。当处理一个图片批次时GPU能同时对所有图片的同一位置像素进行卷积获得成百上千倍的加速。自动微分的基础现代深度学习框架之所以能自动计算梯度正是因为整个模型从输入到输出都被表示成了一个巨大的“计算图”而在这张图上流动的数据就是张量。️ “怎样做”GPU加速的张量操作实战理论说再多都不如看几段torch代码来得直接。以下是张量在GPU上从创建到运算再到用TensorRT加速的完整过程第一步创建与转移# 创建两个随机的5x5矩阵并直接放到GPU上 import torch a torch.randn(5, 5, devicecuda) b torch.randn(5, 5, devicecuda) print(f张量 a 在: {a.device}) # cuda:0第二步GPU上的并行运算这行代码c a b启动后GPU会自动将5x5的矩阵乘法拆分为成百上千个线程并行计算你几乎感觉不到延迟。# 矩阵乘法瞬间完成并行加速 c a b print(f结果形状: {c.shape}) # torch.Size([5, 5])第三步自动微分示例张量是自动求导的基石。设置requires_gradTrue计算图就会被自动跟踪。# 演示PyTorch如何基于张量自动计算梯度 x torch.ones(2, 2, requires_gradTrue) y x 2 z y * y * 3 out z.mean() out.backward() # 自动触发反向传播 print(x.grad) # 输出out对x的梯度第四步走向终极加速 (TensorRT)上面代码都是在框架内即时运行Eager Mode而TensorRT更进一步。它会把你基于张量运算定义的模型编译成一个高度优化的、专为推理设计的“引擎”。它会对你模型中的张量运算进行算子融合、精度量化等优化让你的模型在Jetson上跑得更快。✨ 总结框图下面这张图梳理了张量在AI世界中的角色、优势和应用流程。简单来说张量是AI的数据语言GPU是它的加速引擎而TensorRT则是让这个引擎在Jetson上满负荷运转的终极调校师。