搜索

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

1.66 MB 16 页 1 下载 40 浏览 0 评论 0 收藏
语言 格式 评分
中文(简体)
.pdf
3
摘要
文档主要讲解了PyTorch中张量的维度变换方法,包括View/reshape、Squeeze/unsqueeze、Transpose/t/permute和Expand/repeat等操作。通过示例代码展示了如何对张量进行形状变换,如转置、添加维度、扩展维度等操作。文档还提到了在实际操作中需要注意张量的连续性问题,例如在使用view操作时可能会遇到张量不连续导致的错误,需要使用contiguous()方法解决。内容涵盖了张量维度变换的基本概念和实际应用,帮助读者掌握PyTorch中张量操作的核心技巧。
AI总结
# 深度学习与PyTorch入门实战 - 09. 维度变换 ## PyTorch Tensor维度变换 ### Operation #### View/reshape - **注意**:`View`会丢失维度信息。 #### Squeeze/unsqueeze - **Squeeze**:去掉大小为1的维度。 - **Unsqueeze**:增加一个维度。 #### Transpose/t/permute - **Transpose**:交换维度。 - **t**:二维张量的转置。 - **permute**:重新排列维度。 #### Expand/repeat - **Expand**:复制数据以增加维度。 - **repeat**:重复数据以增加张量大小。 ### 示例 #### Transpose ```python a = torch.randn(4, 3, 32, 32) a1 = a.transpose(1, 3).view(4, 3*32*32).view(4, 3, 32, 32) ``` #### unsqueeze ```python a = torch.tensor([1.2, 2.3]) a.unsqueeze(-1) # 输出 tensor([[1.2000], [2.3000]]) a.unsqueeze(0) # 输出 tensor([[1.2000, 2.3000]]) ``` #### permute ```python b = torch.rand(32) f = torch.rand(4, 32, 14, 14) b = b.unsqueeze(1).unsqueeze(2).unsqueeze(0) b.shape # 输出 torch.Size([1, 32, 1, 1]) ``` ### 注意事项 - 在进行维度变换时,确保操作的兼容性,必要时使用`.contiguous()`以避免错误。 - `t()`仅适用于二维张量。 ### 总结 PyTorch中的张量维度变换操作(如View、Squeeze、Transpose、permute、Expand和repeat)在深度学习中非常重要,特别是在处理神经网络的输入输出和调整模型结构时。正确使用这些操作可以避免错误,并确保数据的正确性和模型的顺利运行。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 9 页请下载阅读 -
文档评分
请文明评论,理性发言.
分享用户
copilot
文档
文章
码力
个性签名
暂无个性签名