mindspore.ops.nextafter

mindspore.ops.nextafter(input, other)[源代码]

逐元素返回 input 指向 other 的下一个可表示值符点值。

比如有两个数 \(a\)\(b\) ,数据类型为float32。并且设float32数据类型的可表示值增量为 \(eps\) 。如果 \(a < b\) ,那么 \(a\) 指向 \(b\) 的下一个可表示值就是 \(a+eps\)\(b\) 指向 \(a\) 的下一个可表示值就是 \(b-eps\)

\[out_{i} = nextafter({input_{i}, other_{i}})\]

更多详细信息请参见 A Self Regularized Non-Monotonic Neural Activation Function

参数:
  • input (Tensor) - 第一个输入Tensor,支持数据类型为float32和float64。其shape为 \((N,*)\) ,其中 \(*\) 为任意数量的额外维度。

  • other (Tensor) - 第二个输入Tensor,支持数据类型为float32和float64。其shape为 \((N,*)\) ,其中 \(*\) 为任意数量的额外维度。

返回:

Tensor,shape和数据类型与 input 相同。

异常:
  • TypeError - inputother 都不是Tensor。

  • TypeError - inputother 的数据类型非float16或float32。

  • TypeError - inputother 数据类型不一致。

  • ValueError - inputother 的shape不一致。

支持平台:

Ascend GPU CPU

样例:

>>> import mindspore
>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> input_ = Tensor(np.asarray([0.0]), mindspore.float32)
>>> other_ = Tensor(np.asarray([0.1]), mindspore.float32)
>>> output_ = ops.nextafter(input_, other_)
>>> print(output_)
[1.e-45]