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

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

一、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 & 自动微分
关键能力高效计算 + 梯度追踪
应用场景模型输入/输出/参数的基础单位

http://www.xdnf.cn/news/13483.html

相关文章:

  • GO语言使用gorm的dbresolver插件实现数据库读写分离
  • iOS开发申请组播/广播权限​
  • 【C/C++】long long 类型传参推荐方式
  • asio之静态互斥量
  • 【PmHub面试篇】集成 Sentinel+OpenFeign实现网关流量控制与服务降级相关面试题解答
  • 远程io模块在汽车流水线的应用
  • 深度学习工具四剑客:Anaconda、Jupyter、PyTorch与CUDA详解
  • 达梦数据库dsc集群+异步主备
  • DeviceNet转Modbus RTU网关在玻璃制造中的关键应用
  • 如何制定兼容多个项目的整体时间计划?
  • Vue.js $emit的介绍和简单使用
  • 【leetcode-合并两个有序链表】
  • Codeforces Round 1029 (Div. 3)
  • C语言数据结构笔记6:使用宏和指针来设置和操作嵌套在结构体中的联合体数组的特定位
  • OC学习—Block初探(简易版)
  • 【实战指南】前端项目Nginx配置全流程:从打包部署到解决跨域/路由循环问题
  • 在C# 中使用建造者模式
  • 算法题(167):FBI树
  • Oracle日志体系和遇到问题后日志排查路径
  • 行为模式-责任链模式
  • 进行性核上性麻痹健康护理指南:全方位照护之道
  • Pytorch 的编程技巧
  • Java八股文——Spring「Spring 篇」
  • 5.4.2树、森林与二叉树的转换
  • 今日行情明日机会——20250611
  • Android GreenDAO 通过 Key 查询数据库数据慢问题优化
  • 13.自治系统路由计算题
  • Node.js:开启现代服务器端编程的新篇章
  • h5fortran 简介与使用指南
  • 新能源知识库(36)什么是BMU