transpose
:
选择使用哪个函数取决于你的具体需求。如果只是交换两个维度,transpose
更简洁。如果需要重新排列多个维度,permute
更方便。
transpose
函数用于交换张量的两个维度。- 你需要指定要交换的两个维度的索引。
- 例如,
torch.transpose(x, 0, 1)
将张量x
的第一个维度和第二个维度进行交换 -
import torch x = torch.randn(2, 3) # 一个形状为 (2, 3) 的张量 y = torch.transpose(x, 0, 1) # 交换第一维和第二维
permute
: permute
函数用于重新排列张量的维度。- 你需要提供一个包含新维度顺序的索引列表。
- 例如,
torch.permute(x, (1, 0))
将张量x
的维度重新排列为第二维和第一维。 -
import torch x = torch.randn(2, 3) # 一个形状为 (2, 3) 的张量 y = x.permute(1, 0) # 重新排列维度为第二维和第一维
总结:
transpose
专门用于交换两个维度的位置。permute
用于按照指定顺序重新排列所有维度。