Pytorch permute,contiguous


permute(dims),常用的維度轉換方法

將tensor的維度換位      參數:dim(int)---換位順序

>>>x = torch.randn(2,3,5)
>>>x.size()
torch.size([2,3,5])
>>>x.permute(2,0,1).size()
torch.size([5,2,3])




contiguous()

contiguous:view只能用在contiguous的variable上。如果在view之前用了transpose, permute等,需要用contiguous()來返回一個contiguous copy。
一種可能的解釋是:
有些tensor並不是占用一整塊內存,而是由不同的數據塊組成,而tensor的view()操作依賴於內存是整塊的,這時只需要執行contiguous()這個函數,把tensor變成在內存中連續分布的形式。
判斷是否contiguous用torch.Tensor.is_contiguous()函數。

import torch x = torch.ones(10, 10) x.is_contiguous() # True x.transpose(0, 1).is_contiguous() # False x.transpose(0, 1).contiguous().is_contiguous()  # True

在pytorch的最新版本0.4版本中,增加了torch.reshape(), 這與 numpy.reshape 的功能類似。它大致相當於 tensor.contiguous().view()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM