ch1

一、为什么第一章要学 Tensor?

深度学习本质上是在处理数据。

图片、文字、声音、视频,进到神经网络之前,都要变成数字。

这些数字在 PyTorch 里主要用 Tensor 存。

第一章 PPT 里讲到,PyTorch 中可以用 torch.arange() 创建连续数字组成的一维数组,也讲了 Tensor 的维度、形状、元素个数、reshape、张量运算、拼接、广播、Tensor 和 Numpy 转换等内容。

你可以先记一句:

Tensor 就是 PyTorch 里用来存数据和做计算的多维数组。


二、Tensor 是什么?

Tensor 中文叫张量

小白版:

1
一个数字       → 0维 Tensor一排数字       → 1维 Tensor一张表         → 2维 Tensor一张彩色图片   → 3维 Tensor一批图片       → 4维 Tensor一批视频       → 5维 Tensor

所以:

Tensor = 可以表示各种维度数据的容器。

第一章 PPT 里就按照 0-d、1-d、2-d、3-d、4-d、5-d 讲了 Tensor:0 维可以表示一个类标签,1 维可以表示一个特征向量,2 维可以表示一个特征矩阵,3 维可以表示一张 RGB 图像,4 维可以表示一组 RGB 图像,5 维可以表示一组 RGB 视频。


三、0维 Tensor:标量

0维就是一个数。

比如:

1
1.0

这叫标量

例子:

1
x = torch.tensor(1.0)

它可以表示:

1
一个分数一个损失值一个类别标签一个概率

你可以理解成:

0维 Tensor 就是一个单独的数字。


四、1维 Tensor:向量

1维就是一排数字。

比如:

1
[1.0, 2.7, 3.4]

这叫向量

它可以表示一个样本的多个特征。

比如一个学生:

1
[出勤率, 作业成绩, 期末成绩]

比如一个房子:

1
[面积, 卧室数, 卫生间数]

所以:

1维 Tensor 常用来表示一个特征向量。


五、2维 Tensor:矩阵

2维就是一张表。

比如:

1
[  [1.0, 2.7, 3.4],  [5.0, 0.2, 4.6],  [4.3, 8.5, 0.2]]

这就是矩阵。

它可以表示多个样本的数据。

比如:

1
第1行:第1个学生的特征第2行:第2个学生的特征第3行:第3个学生的特征

所以 2维 Tensor 常常长这样:

1
样本数 × 特征数

例如:

1
100 个学生,每人 3 个特征→ 形状是 100 × 3

六、3维 Tensor:一张 RGB 图片

一张彩色图片可以看成 3维 Tensor。

为什么?

因为彩色图片有:

1
高度 Height宽度 Width颜色通道 Channel

RGB 图片有 3 个颜色通道:

1
R = 红色G = 绿色B = 蓝色

所以一张 RGB 图片可以表示为:

1
高度 × 宽度 × 通道数

比如:

1
224 × 224 × 3

意思是:

1
图片高 224 个像素图片宽 224 个像素每个像素有 RGB 三个颜色值

PPT 里也把 3-d Tensor 对应到一张 RGB 图像。


七、4维 Tensor:一批图片

深度学习训练时,一般不是一次只喂一张图片,而是一次喂一批图片。

这一批叫:

1
batch

所以一批 RGB 图片可以表示为 4维 Tensor:

1
批量大小 × 高度 × 宽度 × 通道数

例如:

1
32 × 224 × 224 × 3

意思是:

1
一次输入 32 张图片每张图片 224 × 224每张图片有 3 个颜色通道

第一章 PPT 里也写到,4-d 可以表示一组 RGB 图像,即“批量大小 × 长 × 宽 × 高/通道”。

考试看到 batch,你要知道:

batch 就是一批样本。


八、5维 Tensor:一批视频

视频比图片多一个维度:时间。

因为视频是很多帧图片组成的。

所以视频数据可以表示成:

1
批量大小 × 时间 × 高度 × 宽度 × 通道数

比如:

1
8 × 10 × 224 × 224 × 3

意思是:

1
一次输入 8 个视频每个视频 10 帧每帧大小 224 × 224每帧有 RGB 三个通道

PPT 里也提到 5-d 可以表示一组 RGB 视频,即“批量大小 × 时间 × 长 × 宽 × 高/通道”。


九、shape 是什么?

shape 就是查看 Tensor 的形状。

比如:

1
x.shape

如果输出:

1
torch.Size([3, 4])

意思是:

1
这个 Tensor 有 3 行 4 列

小白版:

shape 就是在问:这个数据长什么尺寸?

比如:

1
[3, 4]       → 3行4列[32, 224, 224, 3] → 32张图片,每张224×224×3

第一章 PPT 明确讲到,查看 tensor 的形状使用 .shape

考试可能问:

.shape 的作用是什么?

答:

.shape 用于查看 Tensor 的形状,即每个维度的大小。


十、numel 是什么?

.numel() 用来查看 Tensor 里一共有多少个元素。

比如一个 Tensor 形状是:

1
3 × 4

那元素个数就是:

1
12

代码:

1
x.numel()

第一章 PPT 也讲到,查看张量内元素总数使用 .numel()

考试可能问:

.numel() 的作用是什么?

答:

.numel() 用于返回 Tensor 中元素的总数量。


十一、reshape 是什么?

reshape 是改变 Tensor 的形状。

比如原来是一排 12 个数字:

1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

可以变成:

1
3行4列

也可以变成:

1
2行6列

只要总元素个数不变就行。

也就是说:

1
12 = 3 × 412 = 2 × 612 = 1 × 12

代码例子:

1
x = torch.arange(12)x = x.reshape(3, 4)

结果就是:

1
[  [0, 1, 2, 3],  [4, 5, 6, 7],  [8, 9, 10, 11]]

PPT 里也讲到,一维数组构成的张量可以使用 .reshape(m, n) 进行转换。


十二、reshape 里的 -1 是什么意思?

这个很容易考。

比如:

1
x.reshape(3, -1)

意思是:

1
我确定要 3 行,列数你自动帮我算。

如果 x 总共有 12 个元素:

1
12 ÷ 3 = 4

所以:

1
x.reshape(3, -1)

等价于:

1
x.reshape(3, 4)

再比如:

1
x.reshape(-1, 6)

意思是:

1
我确定要 6 列,行数你自动算。

如果总共有 12 个元素:

1
12 ÷ 6 = 2

所以结果是:

1
2 × 6

考试记忆:

-1 表示该维度由系统根据元素总数自动推断。


十三、Tensor 的基本运算

Tensor 可以直接做数学运算:

1
x + yx - yx * yx / yx ** 2

第一章 PPT 里提到,PyTorch 中张量可以像 Numpy 一样进行 +、-、*、/、** 等数学处理。

注意:

这里的 * 通常是对应位置相乘,不是矩阵乘法。

例如:

1
x = [1, 2, 3]y = [4, 5, 6]x * y = [4, 10, 18]

因为:

1
1×4 = 42×5 = 103×6 = 18

这叫元素级运算。


十四、cat 是什么?

cat 是 concatenate 的缩写,意思是拼接

比如有两个 Tensor:

1
A = [1, 2, 3]B = [4, 5, 6]

拼接后可以变成:

1
[1, 2, 3, 4, 5, 6]

代码:

1
torch.cat((A, B), dim=0)

如果是矩阵,还可以按行拼接或按列拼接。

小白版:

torch.cat() 就是把几个 Tensor 接在一起。

第一章 PPT 中也专门提到 Concatenate,即张量连接。


十五、广播机制是什么?

广播机制是 PyTorch 里非常重要的机制。

它的意思是:

当两个 Tensor 形状不完全一样时,如果满足规则,PyTorch 会自动把小的 Tensor 扩展成合适形状,再进行计算。

比如:

1
A =[  [0, 0],  [1, 1],  [2, 2]]B =[  [0, 1]]

A 是 3 行 2 列。

B 是 1 行 2 列。

它们相加时,B 会自动复制成:

1
[  [0, 1],  [0, 1],  [0, 1]]

然后再相加:

1
[  [0, 0],  [1, 1],  [2, 2]]+[  [0, 1],  [0, 1],  [0, 1]]=[  [0, 1],  [1, 2],  [2, 3]]

PPT 里也展示了类似例子:一个形状类似 [[0,0],[1,1],[2,2]] 的 Tensor 和一个 [[0,1],[0,1],[0,1]] 形式的 Tensor 进行广播相加。

考试答法:

广播机制是指在 Tensor 运算中,当两个张量形状不同但兼容时,系统会自动扩展较小张量的维度或大小,使其能够与较大张量进行元素级运算。

你先不用死抠规则,先记:

1
广播 = 自动复制小 Tensor 来配合大 Tensor 运算

十六、Tensor 和 Numpy 的转换

PPT 里也讲了:

1
Torch Tensor → Numpy ndarray

也就是 PyTorch 的 Tensor 可以和 Numpy 的数组互相转换。

比如:

1
A = x.numpy()

意思是:

1
把 PyTorch Tensor 转成 Numpy 数组

Numpy 是 Python 里非常常用的科学计算库,PyTorch 和 Numpy 很多操作很像。

考试一般不会深入考,知道能转换就行。


十七、item 是什么?

如果一个 Tensor 里面只有一个数字,可以用 .item() 把这个数字取出来。

比如:

1
x = torch.tensor([3.14])x.item()

结果就是:

1
3.14

PPT 里也讲到,从张量中输出元素可以用 item()float()int()

小白版:

.item() 就是把只有一个元素的 Tensor 变成普通 Python 数字。


十八、Pandas 数据预处理

第一章最后还提到 Pandas。

Pandas 是 Python 里处理表格数据的工具,常用来读 .csv 文件。

PPT 里说,Pandas 数据模块常用来处理 Python 下的数据文件,例如 .csv,并提到用 os.makedirs() 创建文件路径、用 Pandas 打开数据文件。

你可以这样理解:

1
Pandas:处理表格数据PyTorch Tensor:送进模型训练

流程一般是:

1
CSV 文件 → Pandas 读取和清洗 → 转成 Tensor → 输入神经网络

比如学生成绩表:

1
姓名, 出勤率, 作业成绩, 期末成绩, 是否及格

Pandas 负责读表、处理缺失值、整理数据。

PyTorch 负责训练模型。


十九、这部分考试怎么考?

题 1:什么是 Tensor?

答:

Tensor 是 PyTorch 中用于存储和计算数据的多维数组结构,可以表示标量、向量、矩阵以及更高维的数据,如图像、视频等,是深度学习中数据表示和运算的基础。


题 2:0维、1维、2维、3维、4维 Tensor 分别可以表示什么?

答:

0维 Tensor 表示一个标量,1维 Tensor 表示一个向量,2维 Tensor 表示矩阵或表格数据,3维 Tensor 可以表示一张 RGB 图像,4维 Tensor 可以表示一批 RGB 图像。


题 3:.shape.numel() 有什么区别?

答:

.shape 用于查看 Tensor 的形状,即每个维度的大小;.numel() 用于查看 Tensor 中元素的总个数。


题 4:reshape 的作用是什么?

答:

reshape 用于改变 Tensor 的形状,但不会改变 Tensor 中元素的总数量。


题 5:广播机制是什么?

答:

广播机制是指在张量运算中,当两个张量形状不同但兼容时,PyTorch 会自动扩展较小的张量,使其能够与较大的张量进行元素级运算。


二十、这部分最短背诵版

你考前这样背:

1
Tensor 是 PyTorch 中的多维数组,用来存储和计算深度学习数据。0维是标量,1维是向量,2维是矩阵,3维可表示 RGB 图像,4维可表示一批图像,5维可表示视频。shape 查看形状,numel 查看元素总数,reshape 改变形状但元素总数不变。广播机制可以让形状不同但兼容的 Tensor 自动扩展后进行运算。

二十一、用一句话总结今天这部分

Tensor 就是深度学习里装数据的盒子;shape 看盒子尺寸,numel 数盒子里有多少元素,reshape 改盒子形状,广播让不同形状的盒子也能一起计算。

十三、第一章整体总结

到这里,第一章主要内容我们基本学完了。

第一章你最终要掌握这些:

1
1. AI、机器学习、深度学习的关系2. 深度学习是什么3. 神经网络是什么4. 神经元、权重、偏置、激活函数5. 前向传播和反向传播6. 传统机器学习 vs 深度学习7. 深度学习三要素:算法、数据、算力8. 深度学习应用场景9. Tensor 张量基础10. PyTorch 常见操作:shape、numel、reshape、广播、cat11. Pandas 数据预处理12. YOLO 目标检测

十四、第一章考试万能大题答案

如果考试让你概述第一章核心内容,你可以这样写:

深度学习是机器学习的一个分支,主要基于深层神经网络,通过多层结构自动学习数据的特征表示,并完成分类、回归、检测等任务。人工智能、机器学习和深度学习是层层包含的关系,人工智能是总体目标,机器学习是实现人工智能的重要方法,深度学习是机器学习中的重要分支。神经网络由输入层、隐藏层和输出层组成,神经元通过权重和偏置进行加权求和,再经过激活函数输出结果。模型通过前向传播得到预测结果,通过损失函数衡量误差,并利用反向传播和优化算法更新参数。相比传统机器学习,深度学习能够自动学习特征,减少人工特征工程依赖,适合图像、语音、自然语言处理等复杂任务。PyTorch 中常用 Tensor 表示和计算数据,Tensor 可以表示标量、向量、矩阵、图像和视频等多维数据。YOLO 是一种基于 CNN 的目标检测算法,可以一次性输出目标的位置和类别,具有速度快、适合实时检测的特点。

这段就是第一章的“万能答案”。

[up主专用,视频内嵌代码贴在这]