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