mindspore.ops.remainder

View Source On Gitee
mindspore.ops.remainder(input, other)[source]

Computes the remainder of dividing the first input tensor by the second input tensor element-wise.

Inputs of input and other comply with the implicit type conversion rules to make the data types consistent. The inputs must be two tensors or one tensor and one scalar. When the inputs are two tensors, both dtypes cannot be bool, and the shapes of them could be broadcast. When the inputs are one tensor and one scalar, the scalar could only be a constant.

\[remainder(input, other) = input - input.div(other, rounding\_mode="floor") * other\]

Warning

  • When the elements of input exceed 2048, there might be accuracy problems.

  • The calculation results of this operator on Ascend and CPU might be inconsistent.

  • If shape is expressed as (D1,D2… ,Dn), then D1*D2… *DN<=1000000,n<=8.

Parameters
  • input (Union[Tensor, numbers.Number, bool]) – The first input is a number, a bool or a tensor whose data type is number.

  • other (Union[Tensor, numbers.Number, bool]) – When the first input is a tensor, The second input could be a number, a bool or a tensor whose data type is number.

Returns

Tensor, the shape is the same as the one after broadcasting, and the data type is the one with higher precision.

Raises
  • TypeError – If neither input nor other is one of the following: Tensor, number, bool.

  • ValueError – If the shape input and other cannot be broadcasted to each other.

Supported Platforms:

Ascend GPU CPU

Examples

>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> x = Tensor(np.array([-4.0, 5.0, 6.0]).astype(np.float16))
>>> y = Tensor(np.array([3.0, 2.0, 3.0]).astype(np.float16))
>>> output = ops.remainder(x, y)
>>> print(output)
[2.  1.  0.]