mindspore.ops.remainder

mindspore.ops.remainder(x, y)[源代码]

逐元素计算第一个元素除第二个元素的余数。

xy 的输入遵守隐式类型转换规则,以使数据类型一致。输入必须是两个Tensor或者一个Tensor和一个Scalar。当输入是两个Tensor时,两个dtype都不能是bool类型,shape可以广播。当输入是Tensor和Scalar时,这个Scalar只能是常数。

\[out_{i} = input_{i} \text{ % } other_{i}\]

警告

  • 输入数值不支持0。

  • 当输入元素超过2048时,操作的精确度无法保证mini表格的千分之二的要求。

  • 由于架构不同,该操作符在NPU和CPU上的计算结果可能不一致。

  • 如果shape表示为(D1,D2…Dn),那么D1 * D2……* DN <= 1000000,n <= 8。

参数:
  • x (Union[Tensor, numbers.Number, bool]) - 第一个输入可以是数字,bool或者dtype是数字的Tensor。

  • y (Union[Tensor, numbers.Number, bool]) - 当第一个输入是一个Tensor时,第二个输入可以是数字、bool或者dtype是数字的Tensor。

返回:

Tensor,具有和其中一个输入广播后相同的shape,数据类型是两个输入中精度较高或数字较高的数据类型。

异常:
  • TypeError - xy 的类型不是Tensor,number或bool。

  • ValueError - xy 的shape不能广播成对方的shape。

支持平台:

Ascend GPU CPU

样例:

>>> 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.]