评价此页

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