mindspore.mint.tile

View Source On Gitee
mindspore.mint.tile(input, dims)[source]

Creates a new tensor by replicating input dims times. The i'th dimension of output tensor has input.shape[i] * dims[i] elements, and the values of input are replicated dims[i] times along the i'th dimension.

Note

On Ascend, the number of dims should not exceed 8, and currently does not support scenarios where more than 4 dimensions are repeated simultaneously.

Parameters
  • input (Tensor) – The tensor whose elements need to be repeated. Set the shape of input tensor as \((x_1, x_2, ..., x_S)\) .

  • dims (tuple[int]) – The parameter that specifies the number of replications, the parameter type is tuple, and the data type is int, i.e., \((y_1, y_2, ..., y_S)\). Only constant value is allowed.

Returns

Tensor, has the same data type as the input. Suppose the length of dims is d, the dimension of input is input.dim, and the shape of input is \((x_1, x_2, ..., x_S)\).

  • If input.dim = d, then the shape of their corresponding positions can be multiplied, and the shape of Outputs is \((x_1*y_1, x_2*y_2, ..., x_S*y_S)\).

  • If input.dim < d, prepend 1 to the shape of input until their lengths are consistent. Such as set the shape of input as \((1, ..., x_1, x_2, ..., x_S)\), then the shape of their corresponding positions can be multiplied, and the shape of Outputs is \((1*y_1, ..., x_R*y_R, x_S*y_S)\).

  • If input.dim > d, prepend 1 to dims until their lengths are consistent. Such as set the dims as \((1, ..., y_1, y_2, ..., y_S)\), then the shape of their corresponding positions can be multiplied, and the shape of Outputs is \((x_1*1, ..., x_R*y_R, x_S*y_S)\).

Raises
  • TypeError – If dims is not a tuple or its elements are not all int.

  • ValueError – If the elements of dims are not all greater than or equal to 0.

Supported Platforms:

Ascend

Examples

>>> import mindspore
>>> import numpy as np
>>> from mindspore import Tensor, mint
>>> input = Tensor(np.array([[1, 2], [3, 4]]), mindspore.float32)
>>> dims = (2, 3)
>>> output = mint.tile(input, dims)
>>> print(output)
[[1.  2.  1.  2.  1.  2.]
 [3.  4.  3.  4.  3.  4.]
 [1.  2.  1.  2.  1.  2.]
 [3.  4.  3.  4.  3.  4.]]
>>> dims = (2, 3, 2)
>>> output = mint.tile(input, dims)
>>> print(output)
[[[1. 2. 1. 2.]
  [3. 4. 3. 4.]
  [1. 2. 1. 2.]
  [3. 4. 3. 4.]
  [1. 2. 1. 2.]
  [3. 4. 3. 4.]]
 [[1. 2. 1. 2.]
  [3. 4. 3. 4.]
  [1. 2. 1. 2.]
  [3. 4. 3. 4.]
  [1. 2. 1. 2.]
  [3. 4. 3. 4.]]]