BatchNormInference

BatchNormInference  // Adjust input for mean and variance

Description

Inputs

Name Element Type Shape
input real \((\bullet, C, \ldots)\)
gamma same as input \((C)\)
beta same as input \((C)\)
mean same as input \((C)\)
variances same as input \((C)\)

Attributes

Name Type Notes
epsilon double Small bias added to variance to avoid division by 0.

Outputs

Name Element Type Shape
normalized same as gamma Same as input

Mathematical Definition

The axes of the input fall into two categories: positional and channel, with channel being axis 1. For each position, there are \(C\) channel values, each normalized independently.

Normalization of a channel sample is controlled by two values:

  • the mean \(\mu\), and
  • the variance \(\sigma^2\);

and by two scaling attributes: \(\gamma\) and \(\beta\).

\[\mathtt{normalized}_{\bullet, c, \ldots} = \frac{\mathtt{input}_{\bullet, c, \ldots}-\mu_c}{\sqrt{\sigma^2_c+\epsilon}}\gamma_c+\beta_c\]

C++ Interface

class BatchNormInference : public ngraph::op::Op

Public Functions

void validate_and_infer_types()

Throws if the node is invalid.