Shortcuts

torch.squeeze

torch.squeeze(input, dim=None) 张量

返回一个张量,移除input中所有大小为1的指定维度。

例如,如果 input 的形状是: (A×1×B×C×1×D)(A \times 1 \times B \times C \times 1 \times D),那么 input.squeeze() 的形状将是:(A×B×C×D)(A \times B \times C \times D)

当给定 dim 时,仅在给定的维度上执行挤压操作。如果 input 的形状为:(A×1×B)(A \times 1 \times B)squeeze(input, 0) 不会改变张量,但 squeeze(input, 1) 会将张量压缩为形状 (A×B)(A \times B)

注意

返回的张量与输入张量共享存储,因此改变其中一个的内容将会改变另一个的内容。

警告

如果张量有一个大小为1的批次维度,那么squeeze(input) 也会移除批次维度,这可能会导致意外错误。建议仅指定你希望被压缩的维度。

Parameters
  • 输入 (张量) – 输入张量。

  • dim (inttupleints可选) –

    如果给定,输入将在指定的维度上被压缩

    仅在指定的维度上。

    版本 2.0 中的更改: dim 现在接受维度元组。

示例:

>>> x = torch.zeros(2, 1, 2, 1, 2)
>>> x.size()
torch.Size([2, 1, 2, 1, 2])
>>> y = torch.squeeze(x)
>>> y.size()
torch.Size([2, 2, 2])
>>> y = torch.squeeze(x, 0)
>>> y.size()
torch.Size([2, 1, 2, 1, 2])
>>> y = torch.squeeze(x, 1)
>>> y.size()
torch.Size([2, 2, 1, 2])
>>> y = torch.squeeze(x, (1, 2, 3))
torch.Size([2, 2, 2])
优云智算