pytorch Tensor.expand,张量扩张

Tensor.expand(*sizes) → 张量

返回自张量的新视图,单例维度扩展到更大的尺寸。

传递 -1 作为维度的大小意味着不更改该维度的大小。

Tensor 也可以扩展到更多的维度,新的维度会附加在前面。 对于新维度,大小不能设置为 -1。

扩展张量不会分配新的内存,而只会在现有张量上创建一个新视图,其中通过将步幅设置为 0 将大小为 1 的维度扩展为更大的大小。任何大小为 1 的维度都可以扩展为任意值 无需分配新内存。

参数

*sizes (torch.Size or int...) – 所需的扩展尺寸

警告

一个扩展张量中的多个元素可以指代同一个内存位置。因此,in-place原位操作(尤其是矢量化操作)可能会导致不正确的行为。 如果您需要写入张量,请先克隆它们。

Example:

>>> 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]])
>>>x.expand(2, 3, 4)

tensor([[[1, 1, 1, 1],

[2, 2, 2, 2],

[3, 3, 3, 3]],

[[1, 1, 1, 1],

[2, 2, 2, 2],

[3, 3, 3, 3]]])