3.8.3 高維上轉(zhuǎn)置
在PyTorch中進(jìn)行轉(zhuǎn)置不僅限于矩陣。 我們可以通過指定應(yīng)該發(fā)生轉(zhuǎn)置(翻轉(zhuǎn)形狀和步幅)的兩個(gè)維度來轉(zhuǎn)置多維數(shù)組:
# 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張量沿行移動)布置在存儲中的張量定義為連續(xù)的静浴。連續(xù)張量很方便,因?yàn)槲覀兛梢园错樞蛴行У卦L問它們胡桃,而無需在存儲中四處走動(由于內(nèi)存訪問在現(xiàn)代CPU上的工作方式梳凛,提高數(shù)據(jù)局部性可以提高性能)。 當(dāng)然石窑,這一優(yōu)勢取決于算法的訪問方式牌芋。