Deep-Learning-with-PyTorch-3.8.3 高维上转置

3.8.3 高维上转置

在PyTorch中进行转置不仅限于矩阵。 我们可以通过指定应该发生转置(翻转形状和步幅)的两个维度来转置多维数组:

# In[35]:
some_t = torch.ones(3, 4, 5)
transpose_t = some_t.transpose(0, 2)
some_t.shape

# Out[35]:
torch.Size([3, 4, 5])

# In[36]:
transpose_t.shape

# Out[36]:
torch.Size([5, 4, 3])

# In[37]:
some_t.stride()

# Out[37]:
(20, 5, 1)

# In[38]:
transpose_t.stride()

# Out[38]:
(1, 5, 20)

将其值从最右边的维度开始(即,沿着2D张量沿行移动)布置在存储中的张量定义为连续的。连续张量很方便,因为我们可以按顺序有效地访问它们,而无需在存储中四处走动(由于内存访问在现代CPU上的工作方式,提高数据局部性可以提高性能)。 当然,这一优势取决于算法的访问方式。

你可能感兴趣的:(Deep-Learning-with-PyTorch-3.8.3 高维上转置)