評價此頁

torch.Tensor.expand#

Tensor.expand(*sizes) Tensor#

返回 self 張量的新檢視,其中單例維度已擴充套件到更大的大小。

將 -1 作為某個維度的 size 意味著不改變該維度的大小。

Tensor 還可以擴充套件到更多維度,新維度會追加在前面。對於新維度,size 不能設定為 -1。

擴充套件張量不會分配新記憶體,而只是建立一個指向現有張量的檢視,其中大小為 1 的維度透過將 stride 設定為 0 來擴充套件到更大的值。任何大小為 1 的維度都可以任意值進行擴充套件,而無需分配新記憶體。

引數

*sizes (torch.Sizeint...) – 期望的擴充套件大小

警告

擴充套件張量中的多個元素可能指向同一個記憶體位置。因此,就地操作(尤其是向量化的操作)可能會導致錯誤行為。如果您需要寫入張量,請先克隆它們。

示例

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