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上的工作方式,提高数据局部性可以提高性能)。 当然,这一优势取决于算法的访问方式。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容