class_docstr: The path integral based convolutional operator from the
  `"Path Integral Based Convolution and Pooling for Graph Neural Networks"
  <https://arxiv.org/abs/2006.16811>`_ paper.
  
  .. math::
      \mathbf{X}^{\prime} = \mathbf{M} \mathbf{X} \mathbf{W}
  
  where :math:`\mathbf{M}` denotes the normalized and learned maximal entropy
  transition (MET) matrix that includes neighbors up to :obj:`filter_size`
  hops:
  
  .. math::
  
      \mathbf{M} = \mathbf{Z}^{-1/2} \sum_{n=0}^L e^{-\frac{E(n)}{T}}
      \mathbf{A}^n \mathbf{Z}^{-1/2}
  
  Args:
      in_channels (int): Size of each input sample, or :obj:`-1` to derive
          the size from the first input(s) to the forward method.
      out_channels (int): Size of each output sample.
      filter_size (int): The filter size :math:`L`.
      **kwargs (optional): Additional arguments of
          :class:`torch_geometric.nn.conv.MessagePassing`.
  
  Shapes:
      - **input:**
        node features :math:`(|\mathcal{V}|, F_{in})`,
        edge indices :math:`(2, |\mathcal{E}|)`,
      - **output:** node features :math:`(|\mathcal{V}|, F_{out})`
class_docstr_tok: ["The","path","integral","based","convolutional","operator","from","the","`","``","Path","Integral","Based","Convolution","and","Pooling","for","Graph","Neural","Networks","''","<","https",":","\/\/arxiv.org\/abs\/2006.16811",">","`","_","paper",".","..","math",":",":","\\mathbf","{","X","}","^","{","\\prime","}","=","\\mathbf","{","M","}","\\mathbf","{","X","}","\\mathbf","{","W","}","where",":","math",":","`","\\mathbf","{","M","}","`","denotes","the","normalized","and","learned","maximal","entropy","transition","(","MET",")","matrix","that","includes","neighbors","up","to",":","obj",":","`","filter_size","`","hops",":","..","math",":",":","\\mathbf","{","M","}","=","\\mathbf","{","Z","}","^","{","-1\/2","}","\\sum_","{","n=0","}","^L","e^","{","-\\frac","{","E","(","n",")","}","{","T","}","}","\\mathbf","{","A","}","^n","\\mathbf","{","Z","}","^","{","-1\/2","}","Args",":","in_channels","(","int",")",":","Size","of","each","input","sample",",","or",":","obj",":","`","-1","`","to","derive","the","size","from","the","first","input","(","s",")","to","the","forward","method",".","out_channels","(","int",")",":","Size","of","each","output","sample",".","filter_size","(","int",")",":","The","filter","size",":","math",":","`","L","`",".","*","*","kwargs","(","optional",")",":","Additional","arguments","of",":","class",":","`","torch_geometric.nn.conv.MessagePassing","`",".","Shapes",":","-","*","*","input",":","*","*","node","features",":","math",":","`","(","|\\mathcal","{","V","}","|",",","F_","{","in","}",")","`",",","edge","indices",":","math",":","`","(","2",",","|\\mathcal","{","E","}","|",")","`",",","-","*","*","output",":","*","*","node","features",":","math",":","`","(","|\\mathcal","{","V","}","|",",","F_","{","out","}",")","`"]
code: def __repr__(self) -> str:
      return (
          f"{self.__class__.__name__}({self.in_channels}, "
          f"{self.out_channels}, filter_size={self.filter_size})"
      )
  
file_path: pytorch_geometric/torch_geometric/nn/conv/pan_conv.py
imports: from typing import Optional, Tuple
  import torch
  from torch import Tensor
  from torch.nn import Parameter
  from torch_geometric.nn.conv import MessagePassing
  from torch_geometric.nn.dense.linear import Linear
  from torch_geometric.typing import Adj, SparseTensor
  from torch_geometric.utils import is_torch_sparse_tensor, spmm
label_desc: Use image node_id 7 for calling the PANConv obj's underlying member method code with example usage: obj.__repr__() and returns: self, str, self, str, self, str, self, str