code: def __init__(
      self,
      in_dim=64,
      num_layers=3,
      hid_dim=64,
      conv_type=ConvType.GIN,
      max_num_aug=8,
      use_stop_aug=False,
      aug_type_param_dict={},
      uniform=False,
      rnn_input=RnnInputType.VIRTUAL,
      **kwargs,
  ):
      super(Augmenter, self).__init__()
      aug_type_list = aug_type_param_dict.keys()
      self.num_aug_types = len(aug_type_list)
      self.max_num_aug = max_num_aug
  
      self.aug_enc = AugEncoder(
          in_dim,
          num_layers,
          hid_dim,
          use_virtual_node=True,
          conv_type=conv_type,
          **kwargs,
      )
  
      assert rnn_input in [RnnInputType.VIRTUAL, RnnInputType.ONE_HOT]
      self.rnn_hid_dim = hid_dim
      self.rnn_input = rnn_input
      if rnn_input == RnnInputType.VIRTUAL:
          self.aug_type_rnn = torch.nn.GRU(hid_dim, hid_dim)
      elif rnn_input == RnnInputType.ONE_HOT:
          self.aug_type_rnn = torch.nn.GRU(len(aug_type_list), hid_dim)
  
      out_dim = (
          len(aug_type_list) + 1 if use_stop_aug else len(aug_type_list)
      )
      self.aug_type_mlp = Sequential(
          Linear(hid_dim, hid_dim),
          ReLU(),
          Linear(hid_dim, out_dim),
          Softmax(dim=-1),
      )
  
      self.aug_trans_heads = torch.nn.ModuleList()
      for aug_type in aug_type_list:
          self.aug_trans_heads.append(
              self.AUG_STR_TO_CLASS[aug_type](
                  uniform=uniform, **aug_type_param_dict[aug_type]
              )
          )
  
file_path: DIG/dig/auggraph/method/GraphAug/aug/augmenter.py
imports: import torch
  from torch_geometric.data import Batch, Data
  from torch.nn import Linear, Sequential, ReLU, Softmax, BatchNorm1d
  from torch.distributions import Categorical
  from .aug_encoder import AugEncoder
  from .node_fm import NodeFM
  from .node_drop import NodeDrop
  from .edge_per import EdgePer
  from ..constants import *
label_desc: Use image node_id 1 to create a new Augmenter object from inherited base classes: torch.nn with example: obj = Augmenter(in_dim, num_layers, hid_dim, conv_type, max_num_aug, use_stop_aug, aug_type_param_dict, uniform, rnn_input)