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