docstr: emb_dim (int): node embedding dimensionality
docstr_tok: ["emb_dim","(","int",")",":","node","embedding","dimensionality"]
code: def __init__(self, emb_dim):
      """
      emb_dim (int): node embedding dimensionality
      """
  
      super(GINConv, self).__init__(aggr="add")
  
      self.mlp = torch.nn.Sequential(
          torch.nn.Linear(emb_dim, 2 * emb_dim),
          torch.nn.BatchNorm1d(2 * emb_dim),
          torch.nn.ReLU(),
          torch.nn.Linear(2 * emb_dim, emb_dim),
      )
      self.eps = torch.nn.Parameter(torch.Tensor([0]))
  
      self.bond_encoder = BondEncoder(emb_dim=emb_dim)
  
imports: import torch
  from torch_geometric.nn import MessagePassing
  import torch.nn.functional
  from torch_geometric.nn import global_mean_pool, global_add_pool
  from ogb.graphproppred.mol_encoder import AtomEncoder, BondEncoder
  from torch_geometric.utils import degree
  import math
label_desc: Use image node_id 1 to create a new GINConv object from inherited base classes: MessagePassing with example: obj = GINConv(emb_dim)