pytorch Tensor.expand()張量擴張


Tensor.expand(*sizes) → 張量

返回自張量的新視圖,單例維度擴展到更大的尺寸。

傳遞 -1 作為維度的大小意味着不更改該維度的大小。

Tensor 也可以擴展到更多的維度,新的維度會附加在前面。 對於新維度,大小不能設置為 -1。

擴展張量不會分配新的內存,而只會在現有張量上創建一個新視圖,其中通過將步幅設置為 0 將大小為 1 的維度擴展為更大的大小。任何大小為 1 的維度都可以擴展為任意值 無需分配新內存。

參數
*sizes (torch.Size or int...) – 所需的擴展尺寸

警告

一個擴展張量中的多個元素可以指代同一個內存位置。因此,in-place原位操作(尤其是矢量化操作)可能會導致不正確的行為。 如果您需要寫入張量,請先克隆它們。

 

Example:

>>> x = torch.tensor([[1], [2], [3]]) >>> x.size() torch.Size([3, 1]) >>> x.expand(3, 4) tensor([[ 1, 1, 1, 1],  [ 2, 2, 2, 2],  [ 3, 3, 3, 3]]) >>> x.expand(-1, 4) # -1 means not changing the size of that dimension tensor([[ 1, 1, 1, 1],  [ 2, 2, 2, 2],  [ 3, 3, 3, 3]])

>>>x.expand(2, 3, 4)

tensor([[[1, 1, 1, 1],
             [2, 2, 2, 2],
             [3, 3, 3, 3]],


            [[1, 1, 1, 1],
             [2, 2, 2, 2],
             [3, 3, 3, 3]]])


 

 






免責聲明!

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



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