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


 

 





posted on 2021-08-11 09:09  那抹阳光1994  阅读(5514)  评论(0编辑  收藏  举报

导航