class_docstr: The Light Graph Convolution (LGC) operator from the `"LightGCN:
  Simplifying and Powering Graph Convolution Network for Recommendation"
  <https://arxiv.org/abs/2002.02126>`_ paper.
  
  .. math::
      \mathbf{x}^{\prime}_i = \sum_{j \in \mathcal{N}(i)}
      \frac{e_{j,i}}{\sqrt{\deg(i)\deg(j)}} \mathbf{x}_j
  
  Args:
      normalize (bool, optional): If set to :obj:`False`, output features
          will not be normalized via symmetric normalization.
          (default: :obj:`True`)
      **kwargs (optional): Additional arguments of
          :class:`torch_geometric.nn.conv.MessagePassing`.
  
  Shapes:
      - **input:**
        node features :math:`(|\mathcal{V}|, F)`,
        edge indices :math:`(2, |\mathcal{E}|)`,
        edge weights :math:`(|\mathcal{E}|)` *(optional)*
      - **output:** node features :math:`(|\mathcal{V}|, F)`
class_docstr_tok: ["The","Light","Graph","Convolution","(","LGC",")","operator","from","the","`","``","LightGCN",":","Simplifying","and","Powering","Graph","Convolution","Network","for","Recommendation","''","<","https",":","\/\/arxiv.org\/abs\/2002.02126",">","`","_","paper",".","..","math",":",":","\\mathbf","{","x","}","^","{","\\prime","}","_i","=","\\sum_","{","j","\\in","\\mathcal","{","N","}","(","i",")","}","\\frac","{","e_","{","j",",","i","}","}","{","\\sqrt","{","\\deg","(","i",")","\\deg","(","j",")","}","}","\\mathbf","{","x","}","_j","Args",":","normalize","(","bool",",","optional",")",":","If","set","to",":","obj",":","`","False","`",",","output","features","will","not","be","normalized","via","symmetric","normalization",".","(","default",":",":","obj",":","`","True","`",")","*","*","kwargs","(","optional",")",":","Additional","arguments","of",":","class",":","`","torch_geometric.nn.conv.MessagePassing","`",".","Shapes",":","-","*","*","input",":","*","*","node","features",":","math",":","`","(","|\\mathcal","{","V","}","|",",","F",")","`",",","edge","indices",":","math",":","`","(","2",",","|\\mathcal","{","E","}","|",")","`",",","edge","weights",":","math",":","`","(","|\\mathcal","{","E","}","|",")","`","*","(","optional",")","*","-","*","*","output",":","*","*","node","features",":","math",":","`","(","|\\mathcal","{","V","}","|",",","F",")","`"]
code: def __init__(self, normalize: bool = True, **kwargs):
      kwargs.setdefault("aggr", "add")
      super().__init__(**kwargs)
      self.normalize = normalize
  
file_path: pytorch_geometric/torch_geometric/nn/conv/lg_conv.py
imports: 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 spmm
label_desc: Use image node_id 1 to create a new LGConv object from inherited base classes: MessagePassing with example: obj = LGConv(normalize)