class_docstr: The label propagation operator, firstly introduced in the
  `"Learning from Labeled and Unlabeled Data with Label Propagation"
  <http://mlg.eng.cam.ac.uk/zoubin/papers/CMU-CALD-02-107.pdf>`_ paper.
  
  .. math::
      \mathbf{Y}^{\prime} = \alpha \cdot \mathbf{D}^{-1/2} \mathbf{A}
      \mathbf{D}^{-1/2} \mathbf{Y} + (1 - \alpha) \mathbf{Y},
  
  where unlabeled data is inferred by labeled data via propagation.
  This concrete implementation here is derived from the `"Combining Label
  Propagation And Simple Models Out-performs Graph Neural Networks"
  <https://arxiv.org/abs/2010.13993>`_ paper.
  
  .. note::
  
      For an example of using the :class:`LabelPropagation`, see
      `examples/label_prop.py
      <https://github.com/pyg-team/pytorch_geometric/blob/master/examples/
      label_prop.py>`_.
  
  Args:
      num_layers (int): The number of propagations.
      alpha (float): The :math:`\alpha` coefficient.
code: def __init__(self, num_layers: int, alpha: float):
      super().__init__(aggr="add")
      self.num_layers = num_layers
      self.alpha = alpha
  
file_path: pytorch_geometric/torch_geometric/nn/models/label_prop.py
imports: from typing import Callable, Optional
  import torch
  from torch import Tensor
  from torch_geometric.nn.conv import MessagePassing
  from torch_geometric.nn.conv.gcn_conv import gcn_norm
  from torch_geometric.typing import Adj, OptTensor, SparseTensor
  from torch_geometric.utils import one_hot, spmm
label_desc: Use image node_id 1 to create a new LabelPropagation object from inherited base classes: MessagePassing with example: obj = LabelPropagation(num_layers, alpha)