class_docstr: The path integral based pooling operator from the
  `"Path Integral Based Convolution and Pooling for Graph Neural Networks"
  <https://arxiv.org/abs/2006.16811>`_ paper.
  
  PAN pooling performs top-:math:`k` pooling where global node importance is
  measured based on node features and the MET matrix:
  
  .. math::
      {\rm score} = \beta_1 \mathbf{X} \cdot \mathbf{p} + \beta_2
      {\rm deg}(\mathbf{M})
  
  Args:
      in_channels (int): Size of each input sample.
      ratio (float): Graph pooling ratio, which is used to compute
          :math:`k = \lceil \mathrm{ratio} \cdot N \rceil`.
          This value is ignored if min_score is not None.
          (default: :obj:`0.5`)
      min_score (float, optional): Minimal node score :math:`\tilde{\alpha}`
          which is used to compute indices of pooled nodes
          :math:`\mathbf{i} = \mathbf{y}_i > \tilde{\alpha}`.
          When this value is not :obj:`None`, the :obj:`ratio` argument is
          ignored. (default: :obj:`None`)
      multiplier (float, optional): Coefficient by which features gets
          multiplied after pooling. This can be useful for large graphs and
          when :obj:`min_score` is used. (default: :obj:`1.0`)
      nonlinearity (str or callable, optional): The non-linearity to use.
          (default: :obj:`"tanh"`)
class_docstr_tok: ["The","path","integral","based","pooling","operator","from","the","`","``","Path","Integral","Based","Convolution","and","Pooling","for","Graph","Neural","Networks","''","<","https",":","\/\/arxiv.org\/abs\/2006.16811",">","`","_","paper",".","PAN","pooling","performs","top-",":","math",":","`","k","`","pooling","where","global","node","importance","is","measured","based","on","node","features","and","the","MET","matrix",":","..","math",":",":","{","\\rm","score","}","=","\\beta_1","\\mathbf","{","X","}","\\cdot","\\mathbf","{","p","}","+","\\beta_2","{","\\rm","deg","}","(","\\mathbf","{","M","}",")","Args",":","in_channels","(","int",")",":","Size","of","each","input","sample",".","ratio","(","float",")",":","Graph","pooling","ratio",",","which","is","used","to","compute",":","math",":","`","k","=","\\lceil","\\mathrm","{","ratio","}","\\cdot","N","\\rceil","`",".","This","value","is","ignored","if","min_score","is","not","None",".","(","default",":",":","obj",":","`","0.5","`",")","min_score","(","float",",","optional",")",":","Minimal","node","score",":","math",":","`","\\tilde","{","\\alpha","}","`","which","is","used","to","compute","indices","of","pooled","nodes",":","math",":","`","\\mathbf","{","i","}","=","\\mathbf","{","y","}","_i",">","\\tilde","{","\\alpha","}","`",".","When","this","value","is","not",":","obj",":","`","None","`",",","the",":","obj",":","`","ratio","`","argument","is","ignored",".","(","default",":",":","obj",":","`","None","`",")","multiplier","(","float",",","optional",")",":","Coefficient","by","which","features","gets","multiplied","after","pooling",".","This","can","be","useful","for","large","graphs","and","when",":","obj",":","`","min_score","`","is","used",".","(","default",":",":","obj",":","`","1.0","`",")","nonlinearity","(","str","or","callable",",","optional",")",":","The","non-linearity","to","use",".","(","default",":",":","obj",":","`","``","tanh","''","`",")"]
code: def __repr__(self) -> str:
      if self.min_score is None:
          ratio = f"ratio={self.ratio}"
      else:
          ratio = f"min_score={self.min_score}"
  
      return (
          f"{self.__class__.__name__}({self.in_channels}, {ratio}, "
          f"multiplier={self.multiplier})"
      )
  
file_path: pytorch_geometric/torch_geometric/nn/pool/pan_pool.py
imports: from typing import Callable, Optional, Tuple, Union
  import torch
  from torch import Tensor
  from torch.nn import Parameter
  from torch_geometric.nn.pool.connect import FilterEdges
  from torch_geometric.nn.pool.select import SelectTopK
  from torch_geometric.typing import OptTensor, SparseTensor
  from torch_geometric.utils import scatter
label_desc: Use image node_id 4 for calling the PANPooling obj's underlying member method code with example usage: obj.__repr__() and returns: self, str, self, str, ratio, str, self, str