class_docstr: The anti-symmetric graph convolutional operator from the
  `"Anti-Symmetric DGN: a stable architecture for Deep Graph Networks"
  <https://openreview.net/forum?id=J3Y7cgZOOS>`_ paper.
  
  .. math::
      \mathbf{x}^{\prime}_i = \mathbf{x}_i + \epsilon \cdot \sigma \left(
          (\mathbf{W}-\mathbf{W}^T-\gamma \mathbf{I}) \mathbf{x}_i +
          \Phi(\mathbf{X}, \mathcal{N}_i) + \mathbf{b}\right),
  
  where :math:`\Phi(\mathbf{X}, \mathcal{N}_i)` denotes a
  :class:`~torch.nn.conv.MessagePassing` layer.
  
  Args:
      in_channels (int): Size of each input sample.
      phi (MessagePassing, optional): The message passing module
          :math:`\Phi`. If set to :obj:`None`, will use a
          :class:`~torch_geometric.nn.conv.GCNConv` layer as default.
          (default: :obj:`None`)
      num_iters (int, optional): The number of times the anti-symmetric deep
          graph network operator is called. (default: :obj:`1`)
      epsilon (float, optional): The discretization step size
          :math:`\epsilon`. (default: :obj:`0.1`)
      gamma (float, optional): The strength of the diffusion :math:`\gamma`.
          It regulates the stability of the method. (default: :obj:`0.1`)
      act (str, optional): The non-linear activation function :math:`\sigma`,
          *e.g.*, :obj:`"tanh"` or :obj:`"relu"`. (default: :class:`"tanh"`)
      act_kwargs (Dict[str, Any], optional): Arguments passed to the
          respective activation function defined by :obj:`act`.
          (default: :obj:`None`)
      bias (bool, optional): If set to :obj:`False`, the layer will not learn
          an additive bias. (default: :obj:`True`)
  
  Shapes:
      - **input:**
        node features :math:`(|\mathcal{V}|, F_{in})`,
        edge indices :math:`(2, |\mathcal{E}|)`,
        edge weights :math:`(|\mathcal{E}|)` *(optional)*
      - **output:** node features :math:`(|\mathcal{V}|, F_{in})`
class_docstr_tok: ["The","anti-symmetric","graph","convolutional","operator","from","the","`","``","Anti-Symmetric","DGN",":","a","stable","architecture","for","Deep","Graph","Networks","''","<","https",":","\/\/openreview.net\/forum","?","id=J3Y7cgZOOS",">","`","_","paper",".","..","math",":",":","\\mathbf","{","x","}","^","{","\\prime","}","_i","=","\\mathbf","{","x","}","_i","+","\\epsilon","\\cdot","\\sigma","\\left","(","(","\\mathbf","{","W","}","-\\mathbf","{","W","}","^T-\\gamma","\\mathbf","{","I","}",")","\\mathbf","{","x","}","_i","+","\\Phi","(","\\mathbf","{","X","}",",","\\mathcal","{","N","}","_i",")","+","\\mathbf","{","b","}","\\right",")",",","where",":","math",":","`","\\Phi","(","\\mathbf","{","X","}",",","\\mathcal","{","N","}","_i",")","`","denotes","a",":","class",":","`","~torch.nn.conv.MessagePassing","`","layer",".","Args",":","in_channels","(","int",")",":","Size","of","each","input","sample",".","phi","(","MessagePassing",",","optional",")",":","The","message","passing","module",":","math",":","`","\\Phi","`",".","If","set","to",":","obj",":","`","None","`",",","will","use","a",":","class",":","`","~torch_geometric.nn.conv.GCNConv","`","layer","as","default",".","(","default",":",":","obj",":","`","None","`",")","num_iters","(","int",",","optional",")",":","The","number","of","times","the","anti-symmetric","deep","graph","network","operator","is","called",".","(","default",":",":","obj",":","`","1","`",")","epsilon","(","float",",","optional",")",":","The","discretization","step","size",":","math",":","`","\\epsilon","`",".","(","default",":",":","obj",":","`","0.1","`",")","gamma","(","float",",","optional",")",":","The","strength","of","the","diffusion",":","math",":","`","\\gamma","`",".","It","regulates","the","stability","of","the","method",".","(","default",":",":","obj",":","`","0.1","`",")","act","(","str",",","optional",")",":","The","non-linear","activation","function",":","math",":","`","\\sigma","`",",","*","e.g",".","*",",",":","obj",":","`","``","tanh","''","`","or",":","obj",":","`","``","relu","''","`",".","(","default",":",":","class",":","`","``","tanh","''","`",")","act_kwargs","(","Dict","[","str",",","Any","]",",","optional",")",":","Arguments","passed","to","the","respective","activation","function","defined","by",":","obj",":","`","act","`",".","(","default",":",":","obj",":","`","None","`",")","bias","(","bool",",","optional",")",":","If","set","to",":","obj",":","`","False","`",",","the","layer","will","not","learn","an","additive","bias",".","(","default",":",":","obj",":","`","True","`",")","Shapes",":","-","*","*","input",":","*","*","node","features",":","math",":","`","(","|\\mathcal","{","V","}","|",",","F_","{","in","}",")","`",",","edge","indices",":","math",":","`","(","2",",","|\\mathcal","{","E","}","|",")","`",",","edge","weights",":","math",":","`","(","|\\mathcal","{","E","}","|",")","`","*","(","optional",")","*","-","*","*","output",":","*","*","node","features",":","math",":","`","(","|\\mathcal","{","V","}","|",",","F_","{","in","}",")","`"]
code: def __repr__(self) -> str:
      return (
          f"{self.__class__.__name__}("
          f"{self.in_channels}, "
          f"phi={self.phi}, "
          f"num_iters={self.num_iters}, "
          f"epsilon={self.epsilon}, "
          f"gamma={self.gamma})"
      )
  
file_path: pytorch_geometric/torch_geometric/nn/conv/antisymmetric_conv.py
imports: import math
  from typing import Any, Callable, Dict, Optional, Union
  import torch
  from torch import Tensor
  from torch.nn import Parameter
  from torch_geometric.nn.conv import GCNConv, MessagePassing
  from torch_geometric.nn.inits import zeros
  from torch_geometric.nn.resolver import activation_resolver
  from torch_geometric.typing import Adj
label_desc: Use image node_id 4 for calling the AntiSymmetricConv obj's underlying member method code with example usage: obj.__repr__() and returns: self, str, self, str, self, str, self, str, self, str, self, str