| 语言 | 格式 | 评分 |
|---|---|---|
中文(简体) | .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 页请下载阅读 -
文档评分














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