mindspore.ops.logit

mindspore.ops.logit(input, eps=None)[source]

Calculate the logit of a tensor element-wise. When eps is not None, element in input is clamped to [eps, 1-eps]. When eps is None, input input is not clamped.

\[\begin{split}\begin{align} y_{i} & = \ln(\frac{z_{i}}{1 - z_{i}}) \\ z_{i} & = \begin{cases} input_{i} & \text{if eps is None} \\ \text{eps} & \text{if } input_{i} \lt \text{eps} \\ input_{i} & \text{if } \text{eps} \leq input_{i} \leq 1 - \text{eps} \\ 1 - \text{eps} & \text{if } input_{i} \gt 1 - \text{eps} \end{cases} \end{align}\end{split}\]
Parameters
  • input (Tensor) – The input tensor of type float16, float32 or float64.

  • eps (float, optional) – The epsilon. If eps is not None, the input clamp bound is defined as [eps, 1-eps], otherwise, the input input is not clamped. Default: None .

Returns

Tensor, with the same shape and dtype as the input.

Raises
  • TypeError – If eps is not a float.

  • TypeError – If input is not a Tensor.

  • TypeError – If dtype of input is not float16, float32 or float64.

Supported Platforms:

Ascend GPU CPU

Examples

>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> x = Tensor(np.array([0.1, 0.2, 0.3]).astype(np.float32))
>>> output = ops.logit(x, eps=1e-5)
>>> print(output)
[-2.1972246 -1.3862944 -0.8472978]