mindspore.ops.LRN

class mindspore.ops.LRN(depth_radius=5, bias=1.0, alpha=1.0, beta=0.5, norm_region='ACROSS_CHANNELS')[source]

Local Response Normalization.

Warning

LRN is deprecated on Ascend due to potential accuracy problem. It's recommended to use other normalization methods, e.g. mindspore.ops.BatchNorm.

\[b_{c} = a_{c}\left(k + \frac{\alpha}{n} \sum_{c'=\max(0, c-n/2)}^{\min(N-1,c+n/2)}a_{c'}^2\right)^{-\beta}\]

where the \(a_{c}\) indicates the specific value of the pixel corresponding to \(c\) in feature map; where the \(n/2\) indicates the depth_radius; where the \(k\) indicates the bias; where the \(\alpha\) indicates the alpha; where the \(\beta\) indicates the beta.

Parameters
  • depth_radius (int) – Half-width of the 1-D normalization window with the shape of 0-D. Default: 5 .

  • bias (float) – An offset (usually positive to avoid dividing by 0). Default: 1.0 .

  • alpha (float) – A scale factor, usually positive. Default: 1.0 .

  • beta (float) – An exponent. Default: 0.5 .

  • norm_region (str) – Specifies normalization region. Options: "ACROSS_CHANNELS" . Default: "ACROSS_CHANNELS" .

Inputs:
  • x (Tensor) - A 4-D Tensor with float16 or float32 data type.

Outputs:

Tensor, with the same shape and data type as x.

Raises
Supported Platforms:

GPU CPU

Examples

>>> import mindspore
>>> import numpy as np
>>> from mindspore import Tensor, ops
>>> x = Tensor(np.array([[[[0.1], [0.2]],
...                       [[0.3], [0.4]]]]), mindspore.float32)
>>> lrn = ops.LRN()
>>> output = lrn(x)
>>> print(output)
[[[[0.09534626]
   [0.1825742 ]]
  [[0.2860388 ]
   [0.3651484 ]]]]