当前位置: 首页 > news >正文

【深度学习】深度学习中的张量:从多维数组到智能计算单元

一、n维数组(张量,Tensor)

1. 定义

张量(Tensor)是一个通用的n维数组数据结构。
它的维度(维数)决定了它的形状,例如:

维度名称举例说明
0维标量(scalar)3.14单个数
1维向量(vector)[1.0, 2.0, 3.0]数组
2维矩阵(matrix)[[1, 2], [3, 4]]表格或图像灰度图
3维+张量(tensor)图像 RGB、视频帧序列、语言嵌入序列等高维结构

张量是深度学习中数据与模型参数的统一表示方式。


2. 张量类 vs NumPy ndarray

特性NumPy ndarray深度学习框架中的 Tensor(如 PyTorch 的 Tensor、MXNet 的 ndarray
存储CPU可选 CPU 或 GPU
运算支持高效线性代数、广播等同样支持,并加入自动梯度求导
自动微分❌ 不支持✅ 支持自动求导(如 .backward()
深度学习适配❌ 需手动构建计算图✅ 支持构建神经网络计算图和参数优化

3. 自动微分(Autograd)

张量类不仅能存储数据,还能追踪计算过程并自动求导,这是深度学习训练的关键。


🔍 二、困难点详细讲解

✳️ 难点 1:张量不是只是“多维数组”,而是带“功能”的对象!

🧠 思维误区:“张量和NumPy数组一样,都是装数据的盒子。”

❌ 这只是张量的外壳。
✅ 实际上,深度学习框架中的张量像一个会思考的盒子,它不仅能存储数据,还能:

  • 记住数据是怎么一步步计算出来的

  • 知道如何“反推”出梯度

  • 可以告诉优化器怎么更新参数

📦 想象一下一个“有记忆力的盒子”,每当你对它进行加、乘、卷积等操作,它都悄悄记下这些“动作”,等你说“请反向传播”时,它就能“回忆”每一步,并算出梯度!


✳️ 难点 2:为什么GPU支持如此关键?

💡 深度学习中,数据和模型参数通常是成千上万个张量组成的高维结构。如果仅用CPU,计算效率非常低。

🖼 比如训练图像分类模型,每张图片是 3×224×224 的张量,一批数据是 32×3×224×224,模型的权重也是张量……

👉 这些操作背后是大量矩阵运算,GPU的并行架构可以:

  • 同时执行数万个加法/乘法

  • 把训练时间从“几天”变成“几小时”

🎮 可以把GPU当成张量的“运动场”,能让它们一起飞速奔跑,而CPU就像慢悠悠的小路。


✳️ 难点 3:自动微分是怎么“自动”的?

🧪 假设你有个函数:

y = x ** 2 + 3 * x

如果 x = Tensor(2.0, requires_grad=True)
你计算 y 后,调用 y.backward(),系统就会自动计算:

dy/dx = 2x + 3 → dy/dx = 7.0

🤖 为什么能自动?
因为张量记录了每个操作的**“链条”,一旦你告诉它“反向传播”,它就能自动应用链式法则**:

y ← x**2     (grad: 2x)
y ← 3*x      (grad: 3)
Total grad = 2x + 3

✅ 总结回顾

项目内容
张量定义通用的n维数组
与NumPy区别支持GPU & 自动微分
关键能力高效计算 + 梯度追踪
应用场景模型输入/输出/参数的基础单位

相关文章:

  • jpeg与 Mjpeg数据格式有什么区别
  • 【电力物联网】SDN架构与工作原理介绍
  • PHP基础-语法变量
  • MVVM 分层思想详解
  • Python自动化测试数据驱动解决数据错误
  • 超级神冈探测器2025.6.11
  • 2025年- H81-Lc189--279.完全平方数(动态规划)--Java版
  • 学习日记-day27-6.11
  • leetcode_283.移动零
  • 选择与方法(4) 职场内篇 沿着赤道走,到不了北极,找准职场方向,建立可迁移技能
  • 各项目变更频繁时,如何保持整体稳定
  • 技术研究 | 一种检测大模型是否泄露训练数据的新方法
  • 【AI大模型入门指南】概念与专有名词详解 (一)
  • 雷卯针对易百纳EB-SS528-DC-175开发板防雷防静电方案
  • AI视频生成API:一站式视频生成解决方案
  • Java 语言特性(面试系列4)
  • 从0到1落地一个RAG智能客服系统
  • 加性同态加密的原理与函数解析
  • 运维之十个问题篇--3
  • PTA天梯赛L1 041-050题目解析