ch1
ch1
xiaoyu一、为什么第一章要学 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 的目标检测算法,可以一次性输出目标的位置和类别,具有速度快、适合实时检测的特点。
这段就是第一章的“万能答案”。




