pdf文档 深度学习与PyTorch入门实战 - 09. 维度变换

1.66 MB 16 页 0 评论
语言 格式 评分
中文(简体)
.pdf
3
摘要
文档详细介绍了PyTorch中张量维度变换操作,包括View/reshape、Squeeze/unsqueeze、Transpose/t/permute以及Expand/repeat。通过代码示例展示了这些操作的具体应用及其对张量形状的影响,并强调了Expand和Repeat的区别在于内存是否被复制。
AI总结
以下是对文档内容的总结: 《深度学习与PyTorch入门实战 - 09. 维度变换》 本节介绍了PyTorch中张量维度变换的多种操作及其用法,以下是核心内容: 1. **View/Reshape**:用于改变张量的维度形状。需要注意的是,view操作会丢失原始张量的维度信息。例如: - 通过`view`方法可以将张量的维度形状进行调整,如`a.view(4, -1, 32, 32)`,通过`-1`自动计算维度大小。 - reshape与view类似,但会保留shape属性。 2. **Squeeze/Unsqueeze**: - `squeeze`:用于去除张量中的形状为1的维度。例如,`b.squeeze()`会将形状([1, 32, 1, 1])变为([32])。 - `unsqueeze`:用于增加一个维度。例如,`b.unsqueeze(1)`会将形状([32, 1, 1])变为([32, 1, 1, 1])。 3. **Transpose/T/Permute**: - `transpose`:交换两个指定维度的位置。例如,`a.transpose(1, 3)`会交换第二和第四维。 - `permute`:用于重新排列张量的所有维度。例如,`a.permute(0, 2, 3, 1)`会将维度0、2、3、1重新排列。 - 需要注意的是,`transpose`和`permute`可能需要使用`contiguous()`来确保内存布局的连续性,以避免出错。 4. **Expand/Repeat**: - `expand`:通过广播的方式扩展张量的尺寸。例如,`b.expand(-1, 32, -1, -4)`会将张量扩展到指定的尺寸。 - `repeat`:通过复制张量的数据来扩展尺寸。例如,`b.repeat(4, 1, 1, 1)`会将张量在第一个维度上复制4次。 通过这些操作,可以灵活地调整张量的维度和形状,以适应不同的模型需求。正确使用这些操作可以避免内存问题,并提高代码的效率和可读性。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 9 页请下载阅读 -
文档评分
请文明评论,理性发言.