class_docstr: Applies message normalization over the aggregated messages as described
  in the `"DeeperGCNs: All You Need to Train Deeper GCNs"
  <https://arxiv.org/abs/2006.07739>`_ paper.
  
  .. math::
  
      \mathbf{x}_i^{\prime} = \mathrm{MLP} \left( \mathbf{x}_{i} + s \cdot
      {\| \mathbf{x}_i \|}_2 \cdot
      \frac{\mathbf{m}_{i}}{{\|\mathbf{m}_i\|}_2} \right)
  
  Args:
      learn_scale (bool, optional): If set to :obj:`True`, will learn the
          scaling factor :math:`s` of message normalization.
          (default: :obj:`False`)
code: def __repr__(self) -> str:
      return (
          f"{self.__class__.__name__}"
          f"(learn_scale={self.scale.requires_grad})"
      )
  
file_path: pytorch_geometric/torch_geometric/nn/norm/msg_norm.py
imports: import torch
  import torch.nn.functional
  from torch import Tensor
  from torch.nn import Parameter
label_desc: Use image node_id 4 for calling the MessageNorm obj's underlying member method code with example usage: obj.__repr__() and returns: self, str, self, str