mindspore.ops.DivNoNan
- class mindspore.ops.DivNoNan[源代码]
对 x1 和 x2 逐元素执行安全除法,如果 x2 的元素为0,则返回0。
x1 和 x2 的输入遵循隐式类型转换规则,使数据类型一致。 输入必须是两个Tensor或一个Tensor和一个Scalar。 当输入是两个Tensor时,它们的dtype不能同时是bool类型的,它们的shape可以广播。 当输入是一个Tensor和一个Scalar时,Scalar只能是一个常数。
\[\begin{split}output_{i} = \begin{cases} 0, & \text{ if } x2_{i} = 0\\ x1_{i} / x2_{i}, & \text{ if } x2_{i} \ne 0 \end{cases}\end{split}\]- 输入:
x1 (Union[Tensor, number.Number, bool]) - 第一个输入是number.Number、bool或者Tensor,数据类型为 number 。
x2 (Union[Tensor, number.Number, bool]) - 当第一个输入是bool或数据类型为number或bool_的Tensor时,第二个输入是number.Number或bool。当第一个输入是Scalar时,第二个输入必须是数据类型为number或bool_的Tensor。
- 输出:
Tensor,shape与广播后的shape相同,数据类型为两个输入中精度较高或数位较高的类型。
- 异常:
TypeError - 如果 x1 和 x2 不是number.Number、bool或Tensor。
- 支持平台:
Ascend
GPU
CPU
样例:
>>> import mindspore >>> import numpy as np >>> from mindspore import Tensor, ops >>> x1 = Tensor(np.array([-1.0, 0., 1.0, 5.0, 6.0]), mindspore.float32) >>> x2 = Tensor(np.array([0., 0., 0., 2.0, 3.0]), mindspore.float32) >>> div_no_nan = ops.DivNoNan() >>> output = div_no_nan(x1, x2) >>> print(output) [0. 0. 0. 2.5 2. ]