torch.Tensor.expand¶
- Tensor.expand(*sizes) Tensor ¶
傳回
self
張量的新視圖,其單例維度擴展到更大的尺寸。將 -1 作為維度的尺寸傳遞表示不變更該維度的尺寸。
張量也可以擴展到更大的維度數量,並且新的維度將附加在前面。對於新的維度,尺寸不能設置為 -1。
擴展張量不會分配新的記憶體,而僅會在現有張量上建立新的視圖,其中大小為 1 的維度透過將
stride
設置為 0 來擴展到更大的尺寸。任何大小為 1 的維度都可以擴展到任意值而無需分配新的記憶體。- 參數
*sizes (torch.Size 或 int...) – 期望的擴展尺寸
警告
擴展張量的多個元素可能指向單一記憶體位置。因此,原地操作(尤其是向量化的操作)可能會導致不正確的行為。如果您需要寫入張量,請先複製它們。
範例
>>> 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]])