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]]])