pytorch中有兩種方式可以實(shí)現(xiàn)tensor指定維度的交換,第一個(gè)是torch.permute(),第二個(gè)方法是torch.transpose()。
二者不同是torch.permute()可以同時(shí)交換多個(gè)維度,而torch.transpose()每次只能交換兩個(gè)維度。
方式一:torch.permute()
參數(shù)列表:
- input:待交換的張量
- dims:需要交換維度的索引
該函數(shù)會(huì)按照我們指定維度方式重新排列,例如我們下面定義了一個(gè)張量維度為【2,3,4】,如果我們要將維度變?yōu)椤?,3,2】,就需要交換第一個(gè)維度和第三個(gè)維度,那我們傳入的參數(shù)維度索引就應(yīng)該為【2,1,0】,該索引對(duì)應(yīng)維度的順序,原來是【0,1,2】,現(xiàn)在是【2,1,0】。
a = torch.randn(2, 3, 4)
print(a.shape)
print(torch.permute(a, (2, 1, 0)).shape)
torch.Size([2, 3, 4])
torch.Size([4, 3, 2])
或者還可以使用transpose函數(shù)直接交換維度文章來源:http://www.zghlxwxcb.cn/news/detail-602605.html
方式二:torch.transpose()
對(duì)于該方法每次只能交換兩個(gè)維度,輸入的參數(shù)很簡(jiǎn)單就是需要交換的兩個(gè)維度的索引。文章來源地址http://www.zghlxwxcb.cn/news/detail-602605.html
print(torch.transpose(a, 0, 1).shape)
torch.Size([3, 2, 4])
到了這里,關(guān)于pytorch交換tensor的指定維度的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!