mindspore.ops.floor_mod

查看源文件
mindspore.ops.floor_mod(x, y)[源代码]

逐元素计算第一个输入除以第二个输入,并向下取余。

如果两个输入数据类型不同,遵循隐式类型转换规则。 输入必须是两个tensor或一个tensor和一个scalar。 当输入是两个tensor时,其shape须可以进行广播,并且数据类型不能同时为bool。

outi=floor(xi//yi)

警告

  • 输入 y 的元素不能等于0,否则将返回当前数据类型的最大值。

  • 当输入元素数量超过2048时,算子的精度不能保证千分之二的要求。

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

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

参数:
  • x (Union[Tensor, Number, bool]) - 第一个输入tensor。

  • y (Union[Tensor, Number, bool]) - 第二个输入tensor。

返回:

Tensor

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> # case 1: Two tensors with boolean and integer data type.
>>> input = mindspore.tensor([True, True, False])
>>> other = mindspore.tensor([1, 2, 4])
>>> output = mindspore.ops.floor_mod(input, other)
>>> print(output)
[0 1 0]
>>>
>>> # case 2: One tensor and one scalar.
>>> input = mindspore.tensor([1, 2, 4])
>>> other = mindspore.tensor(1.5)
>>> output = mindspore.ops.floor_mod(input, other)
>>> print(output)
[1.  0.5 1. ]
>>>
>>> # case 3: When inputs have different data types, type promotion rules are followed.
>>> input = mindspore.tensor([1, 2, 4], mindspore.int32)
>>> other = mindspore.tensor([1.1, 2.5, -1.5], mindspore.float32)
>>> output = mindspore.ops.floor_mod(input, other)
>>> print(output)
[ 1.   2.  -0.5]