尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Tensor 是什么?PyTorch 里最重要的对象讲清楚

Tensor 是什么?PyTorch 里最重要的对象讲清楚
📅 发布时间:2026/7/1 1:38:05

学 PyTorch 时,第一个绕不开的概念就是Tensor。

很多人会把它翻译成“张量”,这个词听起来有点硬。但从代码角度看,可以先把 Tensor 理解成更通用的数组。

它可以是一组数字,也可以是一张表,还可以是一批图片。

从数字到 Tensor

一个普通数字可以看成 0 维 Tensor:

import torch ​ x = torch.tensor(3.0)

一组数字可以看成 1 维 Tensor:

x = torch.tensor([1.0, 2.0, 3.0])

一个矩阵可以看成 2 维 Tensor:

x = torch.tensor([ [1.0, 2.0], [3.0, 4.0], ])

如果是一批图片,维度可能更多,比如:

[batch, channel, height, width]

这就是深度学习里常见的四维 Tensor。

Tensor 为什么重要

在 PyTorch 里,几乎所有东西都会变成 Tensor。

训练数据是 Tensor,模型参数是 Tensor,中间计算结果是 Tensor,梯度也是 Tensor。

如果你理解了 Tensor 的形状和流动方式,很多模型代码就会清楚很多。

shape 是第一重点

看 Tensor 时,最重要的是看它的shape。

比如:

x = torch.randn(32, 784) print(x.shape)

这里的32通常表示 batch size,784可能表示每个样本的特征数量。

很多 PyTorch 报错,本质上都是 shape 对不上。

比如 Linear 层期待输入是[batch, in_features],但你传进去的是别的形状,就会报维度错误。

Tensor 和 NumPy 有点像

如果你学过 NumPy,会发现 Tensor 和ndarray很像。

它们都可以做矩阵计算、切片、广播、变形。

但 PyTorch Tensor 有两个特别重要的能力:

  • 可以放到 GPU 上计算

  • 可以记录梯度,支持自动求导

这也是它能用于深度学习训练的关键。

常见操作

几个入门阶段最常用的操作:

x = torch.randn(2, 3) ​ x.shape x.reshape(3, 2) x.to("cuda") x.float() x.mean() x.sum()

这些操作不需要一次性背完,但要慢慢熟悉。

尤其是reshape、to(device)、float(),在训练代码里非常常见。

小结

Tensor 是 PyTorch 的基础数据对象。

先别被“张量”这个名字吓到。你可以把它理解成可以参与深度学习计算的多维数组。

学 PyTorch 时,多看 shape,多跟踪数据从输入到模型输出的变化,很多问题都会变得清楚。

技术图:把关键链路画清楚

可运行实验:同时检查 shape、dtype 与广播

Tensor 报错多数不是“数学太难”,而是形状、类型或设备不匹配。养成打印这三项的习惯,比盲目改代码有效。

import torch ​ x = torch.tensor([[1, 2, 3], [4, 5, 6]], dtype=torch.float32) bias = torch.tensor([0.1, 0.2, 0.3]) y = x + bias print("x:", tuple(x.shape), x.dtype, x.device) print("bias:", tuple(bias.shape)) print("y:\n", y)

运行结果:

x: (2, 3) torch.float32 cpu bias: (3,) y: tensor([[1.1000, 2.2000, 3.3000], [4.1000, 5.2000, 6.3000]])

bias只有 3 个元素,却能自动作用到两行数据上,这就是广播。广播很方便,但维度含义不清时也可能悄悄产生错误结果。

常见误区

  1. Tensor 的维度越多越高级。维度只描述数据组织方式。

  2. Shape 能对上就一定正确。相同 shape 也可能代表完全不同的语义。

动手练习

把bias改成 shape 为(2,)的 Tensor,观察报错并解释哪个维度无法匹配。


本文首发于「去你想去的地方」: Tensor 是什么?PyTorch 里最重要的对象讲清楚 | 去你想去的地方

完整学习路线、视频版和后续更新请访问原文。

相关新闻

  • 把 quicklink 的预加载思想搬到 API 层:我设计了一套‘懒请求调度器’,首屏并发从 9 降到了 2
  • Java线程池使用指南
  • C++继承与多态解析

最新新闻

  • PHP+VUE医疗预约系统毕业设计:全栈开发实战与部署指南
  • MultiFunPlayer完整指南:设备同步与媒体播放的终极解决方案
  • HarmonyOS律愈实战02:ArkTS五音数据模型设计
  • 2026 年有哪些真正适合学生写开题的 AI 辅助写作工具,实测无套路分享
  • Debian 12 编译安装网讯网卡驱动详细教程
  • SCI投稿AI绘图避坑全攻略:AI打草稿+人工转矢量,彻底告别撤稿风险!

日新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

周新闻

  • Windows字体自定义终极方案:No!! MeiryoUI完全指南
  • Deepin Boot Maker:告别命令行,3分钟制作Linux启动盘的智能解决方案
  • Plain Craft Launcher 2:重新定义你的Minecraft游戏体验

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号