mindspore.Tensor.remainder

查看源文件
mindspore.Tensor.remainder(other)

逐元素计算 self 除以 other 后的余数。结果与除数同号且绝对值小于除数的绝对值。

支持广播和隐式数据类型提升。

remainder(input, other) == input - input.div(other, rounding_mode="floor") * other

说明

输入不支持复数类型。至少一个输入为tensor,且不能都为布尔型tensor。 除数 self 为数据类型为 numberbool_ 的Tensor。

参数:
  • other (Union[Tensor, numbers.Number, bool]) - 被除数为数值型、bool或数据类型为数值型或bool的Tensor。当除数是Tensor时,则被除数是数值型、bool或数据类型为数值型或bool的Tensor。

返回:

Tensor,经过隐式类型提升和广播。

异常:
  • TypeError - 如果 selfother 不是以下类型之一:(tensor, tensor),(tensor, number),(tensor, bool),(number, tensor) 或 (bool, tensor)。

  • ValueError - 如果 selfother 不能被广播。

支持平台:

Ascend

样例:

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

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

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

remainder(input, other) == input - input.div(other, rounding_mode="floor") * other

警告

  • 当输入元素超过2048时,可能会有精度问题。

  • 在Ascend和CPU上的计算结果可能不一致。

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

说明

第一个输入 self 为dtype是Number的Tensor。

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

返回:

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

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

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

支持平台:

Ascend GPU CPU

样例:

>>> import numpy as np
>>> from mindspore import Tensor
>>> 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 = x.remainder(divisor=y)
>>> print(output)
[2.  1.  0.]