code: def __init__(
      self,
      input_dim,
      assign_dim,
      output_feat_dim,
      activation,
      dropout,
      aggregator_type,
      link_pred,
  ):
      super(DiffPoolBatchedGraphLayer, self).__init__()
      self.embedding_dim = input_dim
      self.assign_dim = assign_dim
      self.hidden_dim = output_feat_dim
      self.link_pred = link_pred
      self.feat_gc = GraphSageLayer(
          input_dim,
          output_feat_dim,
          activation,
          dropout,
          aggregator_type,
      )
      self.pool_gc = GraphSageLayer(
          input_dim, assign_dim, activation, dropout, aggregator_type
      )
      self.reg_loss = nn.ModuleList([])
      self.loss_log = {}
      self.reg_loss.append(EntropyLoss())
  
imports: import dgl.function
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from scipy.linalg import block_diag
  from model.loss import EntropyLoss
  from ..model_utils import masked_softmax
  from .aggregator import LSTMAggregator, MaxPoolAggregator, MeanAggregator
  from .bundler import Bundler
label_desc: Use image node_id 1 to create a new DiffPoolBatchedGraphLayer object from inherited base classes: nn with example: obj = DiffPoolBatchedGraphLayer(input_dim, assign_dim, output_feat_dim, activation, dropout, aggregator_type, link_pred)