class_docstr: The Point Transformer layer from the `"Point Transformer"
  <https://arxiv.org/abs/2012.09164>`_ paper.
  
  .. math::
      \mathbf{x}^{\prime}_i =  \sum_{j \in
      \mathcal{N}(i) \cup \{ i \}} \alpha_{i,j} \left(\mathbf{W}_3
      \mathbf{x}_j + \delta_{ij} \right),
  
  where the attention coefficients :math:`\alpha_{i,j}` and
  positional embedding :math:`\delta_{ij}` are computed as
  
  .. math::
      \alpha_{i,j}= \textrm{softmax} \left( \gamma_\mathbf{\Theta}
      (\mathbf{W}_1 \mathbf{x}_i - \mathbf{W}_2 \mathbf{x}_j +
      \delta_{i,j}) \right)
  
  and
  
  .. math::
      \delta_{i,j}= h_{\mathbf{\Theta}}(\mathbf{p}_i - \mathbf{p}_j),
  
  with :math:`\gamma_\mathbf{\Theta}` and :math:`h_\mathbf{\Theta}`
  denoting neural networks, *i.e.* MLPs, and
  :math:`\mathbf{P} \in \mathbb{R}^{N \times D}` defines the position of
  each point.
  
  Args:
      in_channels (int or tuple): Size of each input sample, or :obj:`-1` to
          derive the size from the first input(s) to the forward method.
          A tuple corresponds to the sizes of source and target
          dimensionalities.
      out_channels (int): Size of each output sample.
      pos_nn (torch.nn.Module, optional): A neural network
          :math:`h_\mathbf{\Theta}` which maps relative spatial coordinates
          :obj:`pos_j - pos_i` of shape :obj:`[-1, 3]` to shape
          :obj:`[-1, out_channels]`.
          Will default to a :class:`torch.nn.Linear` transformation if not
          further specified. (default: :obj:`None`)
      attn_nn (torch.nn.Module, optional): A neural network
          :math:`\gamma_\mathbf{\Theta}` which maps transformed
          node features of shape :obj:`[-1, out_channels]`
          to shape :obj:`[-1, out_channels]`. (default: :obj:`None`)
      add_self_loops (bool, optional) : If set to :obj:`False`, will not add
          self-loops to the input graph. (default: :obj:`True`)
      **kwargs (optional): Additional arguments of
          :class:`torch_geometric.nn.conv.MessagePassing`.
  
  Shapes:
      - **input:**
        node features :math:`(|\mathcal{V}|, F_{in})` or
        :math:`((|\mathcal{V_s}|, F_{s}), (|\mathcal{V_t}|, F_{t}))`
        if bipartite,
        positions :math:`(|\mathcal{V}|, 3)` or
        :math:`((|\mathcal{V_s}|, 3), (|\mathcal{V_t}|, 3))` if bipartite,
        edge indices :math:`(2, |\mathcal{E}|)`
      - **output:** node features :math:`(|\mathcal{V}|, F_{out})` or
        :math:`(|\mathcal{V}_t|, F_{out})` if bipartite
class_docstr_tok: ["The","Point","Transformer","layer","from","the","`","``","Point","Transformer","''","<","https",":","\/\/arxiv.org\/abs\/2012.09164",">","`","_","paper",".","..","math",":",":","\\mathbf","{","x","}","^","{","\\prime","}","_i","=","\\sum_","{","j","\\in","\\mathcal","{","N","}","(","i",")","\\cup","\\","{","i","\\","}","}","\\alpha_","{","i",",","j","}","\\left","(","\\mathbf","{","W","}","_3","\\mathbf","{","x","}","_j","+","\\delta_","{","ij","}","\\right",")",",","where","the","attention","coefficients",":","math",":","`","\\alpha_","{","i",",","j","}","`","and","positional","embedding",":","math",":","`","\\delta_","{","ij","}","`","are","computed","as","..","math",":",":","\\alpha_","{","i",",","j","}","=","\\textrm","{","softmax","}","\\left","(","\\gamma_\\mathbf","{","\\Theta","}","(","\\mathbf","{","W","}","_1","\\mathbf","{","x","}","_i","-","\\mathbf","{","W","}","_2","\\mathbf","{","x","}","_j","+","\\delta_","{","i",",","j","}",")","\\right",")","and","..","math",":",":","\\delta_","{","i",",","j","}","=","h_","{","\\mathbf","{","\\Theta","}","}","(","\\mathbf","{","p","}","_i","-","\\mathbf","{","p","}","_j",")",",","with",":","math",":","`","\\gamma_\\mathbf","{","\\Theta","}","`","and",":","math",":","`","h_\\mathbf","{","\\Theta","}","`","denoting","neural","networks",",","*","i.e",".","*","MLPs",",","and",":","math",":","`","\\mathbf","{","P","}","\\in","\\mathbb","{","R","}","^","{","N","\\times","D","}","`","defines","the","position","of","each","point",".","Args",":","in_channels","(","int","or","tuple",")",":","Size","of","each","input","sample",",","or",":","obj",":","`","-1","`","to","derive","the","size","from","the","first","input","(","s",")","to","the","forward","method",".","A","tuple","corresponds","to","the","sizes","of","source","and","target","dimensionalities",".","out_channels","(","int",")",":","Size","of","each","output","sample",".","pos_nn","(","torch.nn.Module",",","optional",")",":","A","neural","network",":","math",":","`","h_\\mathbf","{","\\Theta","}","`","which","maps","relative","spatial","coordinates",":","obj",":","`","pos_j","-","pos_i","`","of","shape",":","obj",":","`","[","-1",",","3","]","`","to","shape",":","obj",":","`","[","-1",",","out_channels","]","`",".","Will","default","to","a",":","class",":","`","torch.nn.Linear","`","transformation","if","not","further","specified",".","(","default",":",":","obj",":","`","None","`",")","attn_nn","(","torch.nn.Module",",","optional",")",":","A","neural","network",":","math",":","`","\\gamma_\\mathbf","{","\\Theta","}","`","which","maps","transformed","node","features","of","shape",":","obj",":","`","[","-1",",","out_channels","]","`","to","shape",":","obj",":","`","[","-1",",","out_channels","]","`",".","(","default",":",":","obj",":","`","None","`",")","add_self_loops","(","bool",",","optional",")",":","If","set","to",":","obj",":","`","False","`",",","will","not","add","self-loops","to","the","input","graph",".","(","default",":",":","obj",":","`","True","`",")","*","*","kwargs","(","optional",")",":","Additional","arguments","of",":","class",":","`","torch_geometric.nn.conv.MessagePassing","`",".","Shapes",":","-","*","*","input",":","*","*","node","features",":","math",":","`","(","|\\mathcal","{","V","}","|",",","F_","{","in","}",")","`","or",":","math",":","`","(","(","|\\mathcal","{","V_s","}","|",",","F_","{","s","}",")",",","(","|\\mathcal","{","V_t","}","|",",","F_","{","t","}",")",")","`","if","bipartite",",","positions",":","math",":","`","(","|\\mathcal","{","V","}","|",",","3",")","`","or",":","math",":","`","(","(","|\\mathcal","{","V_s","}","|",",","3",")",",","(","|\\mathcal","{","V_t","}","|",",","3",")",")","`","if","bipartite",",","edge","indices",":","math",":","`","(","2",",","|\\mathcal","{","E","}","|",")","`","-","*","*","output",":","*","*","node","features",":","math",":","`","(","|\\mathcal","{","V","}","|",",","F_","{","out","}",")","`","or",":","math",":","`","(","|\\mathcal","{","V","}","_t|",",","F_","{","out","}",")","`","if","bipartite"]
code: def reset_parameters(self):
      super().reset_parameters()
      reset(self.pos_nn)
      if self.attn_nn is not None:
          reset(self.attn_nn)
      self.lin.reset_parameters()
      self.lin_src.reset_parameters()
      self.lin_dst.reset_parameters()
  
file_path: pytorch_geometric/torch_geometric/nn/conv/point_transformer_conv.py
imports: from typing import Callable, Optional, Tuple, Union
  from torch import Tensor
  from torch_geometric.nn.conv import MessagePassing
  from torch_geometric.nn.dense.linear import Linear
  from torch_geometric.nn.inits import reset
  from torch_geometric.typing import Adj, OptTensor, PairTensor, SparseTensor, torch_sparse
  from torch_geometric.utils import add_self_loops, remove_self_loops, softmax
label_desc: Use image node_id 2 for calling the PointTransformerConv obj's underlying member method code with example usage: obj.reset_parameters() without return types