torch.Tensor.expand#
- Tensor.expand(*sizes) Tensor#
返回
self張量的新檢視,其中單例維度已擴充套件到更大的大小。將 -1 作為某個維度的 size 意味著不改變該維度的大小。
Tensor 還可以擴充套件到更多維度,新維度會追加在前面。對於新維度,size 不能設定為 -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]])