class_docstr: The PointNet set layer from the `"PointNet: Deep Learning on Point Sets
  for 3D Classification and Segmentation"
  <https://arxiv.org/abs/1612.00593>`_ and `"PointNet++: Deep Hierarchical
  Feature Learning on Point Sets in a Metric Space"
  <https://arxiv.org/abs/1706.02413>`_ papers.
  
  .. math::
      \mathbf{x}^{\prime}_i = \gamma_{\mathbf{\Theta}} \left( \max_{j \in
      \mathcal{N}(i) \cup \{ i \}} h_{\mathbf{\Theta}} ( \mathbf{x}_j,
      \mathbf{p}_j - \mathbf{p}_i) \right),
  
  where :math:`\gamma_{\mathbf{\Theta}}` and :math:`h_{\mathbf{\Theta}}`
  denote neural networks, *i.e.* MLPs, and
  :math:`\mathbf{P} \in \mathbb{R}^{N \times D}` defines the position of
  each point.
  
  Args:
      local_nn (torch.nn.Module, optional): A neural network
          :math:`h_{\mathbf{\Theta}}` that maps node features :obj:`x` and
          relative spatial coordinates :obj:`pos_j - pos_i` of shape
          :obj:`[-1, in_channels + num_dimensions]` to shape
          :obj:`[-1, out_channels]`, *e.g.*, defined by
          :class:`torch.nn.Sequential`. (default: :obj:`None`)
      global_nn (torch.nn.Module, optional): A neural network
          :math:`\gamma_{\mathbf{\Theta}}` that maps aggregated node features
          of shape :obj:`[-1, out_channels]` to shape :obj:`[-1,
          final_out_channels]`, *e.g.*, defined by
          :class:`torch.nn.Sequential`. (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","PointNet","set","layer","from","the","`","``","PointNet",":","Deep","Learning","on","Point","Sets","for","3D","Classification","and","Segmentation","''","<","https",":","\/\/arxiv.org\/abs\/1612.00593",">","`","_","and","`","``","PointNet++",":","Deep","Hierarchical","Feature","Learning","on","Point","Sets","in","a","Metric","Space","''","<","https",":","\/\/arxiv.org\/abs\/1706.02413",">","`","_","papers",".","..","math",":",":","\\mathbf","{","x","}","^","{","\\prime","}","_i","=","\\gamma_","{","\\mathbf","{","\\Theta","}","}","\\left","(","\\max_","{","j","\\in","\\mathcal","{","N","}","(","i",")","\\cup","\\","{","i","\\","}","}","h_","{","\\mathbf","{","\\Theta","}","}","(","\\mathbf","{","x","}","_j",",","\\mathbf","{","p","}","_j","-","\\mathbf","{","p","}","_i",")","\\right",")",",","where",":","math",":","`","\\gamma_","{","\\mathbf","{","\\Theta","}","}","`","and",":","math",":","`","h_","{","\\mathbf","{","\\Theta","}","}","`","denote","neural","networks",",","*","i.e",".","*","MLPs",",","and",":","math",":","`","\\mathbf","{","P","}","\\in","\\mathbb","{","R","}","^","{","N","\\times","D","}","`","defines","the","position","of","each","point",".","Args",":","local_nn","(","torch.nn.Module",",","optional",")",":","A","neural","network",":","math",":","`","h_","{","\\mathbf","{","\\Theta","}","}","`","that","maps","node","features",":","obj",":","`","x","`","and","relative","spatial","coordinates",":","obj",":","`","pos_j","-","pos_i","`","of","shape",":","obj",":","`","[","-1",",","in_channels","+","num_dimensions","]","`","to","shape",":","obj",":","`","[","-1",",","out_channels","]","`",",","*","e.g",".","*",",","defined","by",":","class",":","`","torch.nn.Sequential","`",".","(","default",":",":","obj",":","`","None","`",")","global_nn","(","torch.nn.Module",",","optional",")",":","A","neural","network",":","math",":","`","\\gamma_","{","\\mathbf","{","\\Theta","}","}","`","that","maps","aggregated","node","features","of","shape",":","obj",":","`","[","-1",",","out_channels","]","`","to","shape",":","obj",":","`","[","-1",",","final_out_channels","]","`",",","*","e.g",".","*",",","defined","by",":","class",":","`","torch.nn.Sequential","`",".","(","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.local_nn)
      reset(self.global_nn)
  
file_path: pytorch_geometric/torch_geometric/nn/conv/point_conv.py
imports: from typing import Callable, Optional, Union
  import torch
  from torch import Tensor
  from torch_geometric.nn.conv import MessagePassing
  from torch_geometric.nn.inits import reset
  from torch_geometric.typing import Adj, OptTensor, PairOptTensor, PairTensor, SparseTensor, torch_sparse
  from torch_geometric.utils import add_self_loops, remove_self_loops
label_desc: Use image node_id 2 for calling the PointNetConv obj's underlying member method code with example usage: obj.reset_parameters() without return types