class_docstr: Applies separate linear tranformations to the incoming data according
  to types.
  
  For type :math:`\kappa`, it computes
  
  .. math::
      \mathbf{x}^{\prime}_{\kappa} = \mathbf{x}_{\kappa}
      \mathbf{W}^{\top}_{\kappa} + \mathbf{b}_{\kappa}.
  
  It supports lazy initialization and customizable weight and bias
  initialization.
  
  Args:
      in_channels (int): Size of each input sample. Will be initialized
          lazily in case it is given as :obj:`-1`.
      out_channels (int): Size of each output sample.
      num_types (int): The number of types.
      is_sorted (bool, optional): If set to :obj:`True`, assumes that
          :obj:`type_vec` is sorted. This avoids internal re-sorting of the
          data and can improve runtime and memory efficiency.
          (default: :obj:`False`)
      **kwargs (optional): Additional arguments of
          :class:`torch_geometric.nn.Linear`.
  
  Shapes:
      - **input:**
        features :math:`(*, F_{in})`,
        type vector :math:`(*)`
      - **output:** features :math:`(*, F_{out})`
class_docstr_tok: ["Applies","separate","linear","tranformations","to","the","incoming","data","according","to","types",".","For","type",":","math",":","`","\\kappa","`",",","it","computes","..","math",":",":","\\mathbf","{","x","}","^","{","\\prime","}","_","{","\\kappa","}","=","\\mathbf","{","x","}","_","{","\\kappa","}","\\mathbf","{","W","}","^","{","\\top","}","_","{","\\kappa","}","+","\\mathbf","{","b","}","_","{","\\kappa","}",".","It","supports","lazy","initialization","and","customizable","weight","and","bias","initialization",".","Args",":","in_channels","(","int",")",":","Size","of","each","input","sample",".","Will","be","initialized","lazily","in","case","it","is","given","as",":","obj",":","`","-1","`",".","out_channels","(","int",")",":","Size","of","each","output","sample",".","num_types","(","int",")",":","The","number","of","types",".","is_sorted","(","bool",",","optional",")",":","If","set","to",":","obj",":","`","True","`",",","assumes","that",":","obj",":","`","type_vec","`","is","sorted",".","This","avoids","internal","re-sorting","of","the","data","and","can","improve","runtime","and","memory","efficiency",".","(","default",":",":","obj",":","`","False","`",")","*","*","kwargs","(","optional",")",":","Additional","arguments","of",":","class",":","`","torch_geometric.nn.Linear","`",".","Shapes",":","-","*","*","input",":","*","*","features",":","math",":","`","(","*",",","F_","{","in","}",")","`",",","type","vector",":","math",":","`","(","*",")","`","-","*","*","output",":","*","*","features",":","math",":","`","(","*",",","F_","{","out","}",")","`"]
docstr: Resets all learnable parameters of the module.
docstr_tok: ["Resets","all","learnable","parameters","of","the","module","."]
code: def reset_parameters(self):
      r"""Resets all learnable parameters of the module."""
      reset_weight_(
          self.weight,
          self.in_channels,
          self.kwargs.get("weight_initializer", None),
      )
      reset_bias_(
          self.bias,
          self.in_channels,
          self.kwargs.get("bias_initializer", None),
      )
  
imports: import copy
  import math
  from typing import Any, Dict, Optional, Union
  import torch
  import torch.nn.functional
  from torch import Tensor
  from torch.nn.parameter import Parameter
  import torch_geometric.backend
  import torch_geometric.typing
  from torch_geometric import is_compiling
  from torch_geometric.nn import inits
  from torch_geometric.typing import pyg_lib
  from torch_geometric.utils import index_sort, scatter
  from torch_geometric.utils.sparse import index2ptr
label_desc: Use image node_id 2 for calling the HeteroLinear obj's underlying member method code with example usage: obj.reset_parameters() without return types