torch.Tensor.expand

tensor.expand(*sizes) Tensor 或者更自然的: 张量.expand(*sizes) 张量 两种都可以,但为了与原文更一致且符合编程习惯,推荐第一种。

返回一个新的视图,将 self 张量的单例维度扩展为更大的尺寸。

将 -1 作为维度的值传递表示保持该维度的大小不变。

张量还可以扩展到更高的维度,新的维度将被添加到前面。需要注意的是,新维度的大小不能设置为-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]])
本页目录