class_docstr: Modification of PyTorch Geometirc's nn.GCNConv, which reduces the computational cost of GCN layer for
  `GripNet <https://github.com/NYXFLOWER/GripNet>`_ model.
  The graph convolutional operator from the `"Semi-supervised Classification with Graph Convolutional Networks"
  <https://arxiv.org/abs/1609.02907>`_ (ICLR 2017) paper.
  
  .. math::
      \mathbf{X}^{\prime} = \mathbf{\hat{D}}^{-1/2} \mathbf{\hat{A}}
      \mathbf{\hat{D}}^{-1/2} \mathbf{X} \mathbf{\Theta},
  
  where :math:`\mathbf{\hat{A}} = \mathbf{A} + \mathbf{I}` denotes the
  adjacency matrix with inserted self-loops and
  :math:`\hat{D}_{ii} = \sum_{j=0} \hat{A}_{ij}` its diagonal degree matrix.
  
  Note: For more information please see Pytorch Geomertic's `nn.GCNConv
  <https://pytorch-geometric.readthedocs.io/en/latest/modules/nn.html#module-torch_geometric.nn.conv.message_passing>`_ docs.
  
  Args:
      in_channels (int): Size of each input sample.
      out_channels (int): Size of each output sample.
      improved (bool, optional): If set to :obj:`True`, the layer computes
          :math:`\mathbf{\hat{A}}` as :math:`\mathbf{A} + 2\mathbf{I}`.
          (default: :obj:`False`)
      cached (bool, optional): If set to :obj:`True`, the layer will cache
          the computation of :math:`\mathbf{\hat{D}}^{-1/2} \mathbf{\hat{A}}
          \mathbf{\hat{D}}^{-1/2}` on first execution, and will use the
          cached version for further executions.
          This parameter should only be set to :obj:`True` in transductive
          learning scenarios. (default: :obj:`False`)
      bias (bool, optional): If set to :obj:`False`, the layer will not learn
          an additive bias. (default: :obj:`True`)
      **kwargs (optional): Additional arguments of
          :class:`torch_geometric.nn.conv.MessagePassing`.
code: def __repr__(self):
      return "{}({}, {})".format(
          self.__class__.__name__, self.in_channels, self.out_channels
      )
  
imports: import numpy
  import torch
  from torch.nn import Parameter
  from torch_geometric.nn.conv import MessagePassing
  from torch_geometric.utils import add_remaining_self_loops
  from torch_scatter import scatter_add
label_desc: Use image node_id 7 for calling the GCNEncoderLayer obj's underlying member method code with example usage: obj.__repr__() and returns: str