mindspore.mint.squeeze

mindspore.mint.squeeze(input, dim)[source]

Return the Tensor after deleting the dimension of size 1 in the specified dim.

If \(dim=()\), it will remove all the dimensions of size 1. If dim is specified, it will remove the dimensions of size 1 in the given dim. For example, if the dimension is not specified \(dim=()\), input shape is (A, 1, B, C, 1, D), then the shape of the output Tensor is (A, B, C, D). If the dimension is specified, the squeeze operation is only performed in the specified dimension. If input shape is (A, 1, B), when \(dim=0\) or \(dim=2\), the input tensor is not changed, while when \(dim=1\), the input tensor shape is changed to (A, B).

Note

  • Please note that in dynamic graph mode, the output Tensor will share data with the input Tensor, and there is no Tensor data copy process.

  • The dimension index starts at 0 and must be in the range [-input.ndim, input.ndim].

  • In GE mode, only support remove dimensions of size 1 from the shape of input tensor.

Warning

This is an experimental API that is subject to change or deletion.

Parameters
  • input (Tensor) – Used to calculate Squeeze. The shape of tensor is \((x_1, x_2, ..., x_R)\).

  • dim (Union[int, tuple(int)]) – Specifies the dimension indexes of shape to be removed, which will remove all the dimensions of size 1 in the given dim parameter. If specified, it must be int32 or int64.

Returns

Tensor, the shape of tensor is \((x_1, x_2, ..., x_S)\).

Raises
  • TypeError – If input is not a tensor.

  • TypeError – If dim is not an int, tuple.

  • TypeError – If dim is a tuple whose elements are not all int.

Supported Platforms:

Ascend

Examples

>>> import mindspore
>>> import numpy as np
>>> from mindspore import Tensor, mint
>>> input = Tensor(np.ones(shape=[3, 2, 1]), mindspore.float32)
>>> output = mint.squeeze(input, 2)
>>> print(output)
[[1. 1.]
 [1. 1.]
 [1. 1.]]