深度学习与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 页请下载阅读 -
文档评分