class_docstr: L2 normalization
class_docstr_tok: ["L2","normalization"]
code: def forward(self, inputs):
      self.retain_inputs((0,))
      (x,) = inputs
      xp = backend.get_array_module(x)
      # Note: Passing dtype argument to numpy.sqrt() because NumPy in
      # Python 2 looks to return a casted value to float32 when it takes a
      # float16 value.
      norm = xp.sqrt(
          xp.sum(xp.square(x), axis=self.axis, keepdims=True),
          dtype=x.dtype,
      ) + x.dtype.type(self.eps)
      return (utils.force_array(x / norm),)
  
file_path: chainer/chainer/functions/normalization/l2_normalization.py
imports: import six
  from chainer import backend
  from chainer import function_node
  import chainer.functions
  from chainer import utils
  from chainer.utils import type_check
label_desc: Use image node_id 3 for calling the NormalizeL2 obj's underlying member method code with example usage: obj.forward(inputs) and returns: utils