class_docstr: The graph isomorphism operator from the `"How Powerful are
  Graph Neural Networks?" <https://arxiv.org/abs/1810.00826>`_ paper
  
  .. math::
      \mathbf{x}^{\prime}_i = h_{\mathbf{\Theta}} \left( (1 + \epsilon) \cdot
      \mathbf{x}_i + \sum_{j \in \mathcal{N}(i)} \mathbf{x}_j \right)
  
  or
  
  .. math::
      \mathbf{X}^{\prime} = h_{\mathbf{\Theta}} \left( \left( \mathbf{A} +
      (1 + \epsilon) \cdot \mathbf{I} \right) \cdot \mathbf{X} \right),
  
  here :math:`h_{\mathbf{\Theta}}` denotes a neural network, *.i.e.* an MLP.
  
  Args:
      nn (torch.nn.Module): A neural network :math:`h_{\mathbf{\Theta}}` that
          maps node features :obj:`x` of shape :obj:`[-1, in_channels]` to
          shape :obj:`[-1, out_channels]`, *e.g.*, defined by
          :class:`torch.nn.Sequential`.
      eps (float, optional): (Initial) :math:`\epsilon`-value.
          (default: :obj:`0.`)
      train_eps (bool, optional): If set to :obj:`True`, :math:`\epsilon`
          will be a trainable parameter. (default: :obj:`False`)
      **kwargs (optional): Additional arguments of
          :class:`torch_geometric.nn.conv.MessagePassing`.
code: def reset_parameters(self):
      reset(self.nn)
      self.eps.data.fill_(self.initial_eps)
  
imports: from typing import Callable, Union
  from torch_geometric.typing import OptPairTensor, Adj, OptTensor, Size
  import torch
  from torch import Tensor
  import torch.nn.functional
  from torch_sparse import SparseTensor, matmul
  from torch_geometric.nn.conv import MessagePassing
  from .inits import reset
label_desc: Use image node_id 2 for calling the GINConv obj's underlying member method code with example usage: obj.reset_parameters() without return types