code: def __init__(
      self,
      feature_dim,
      nhid,
      num_conv=4,
      dropout=0,
      use_GAT=True,
      K=1,
      balance=False,
      use_cluster_feat=True,
      use_focal_loss=True,
      **kwargs,
  ):
      super(LANDER, self).__init__()
      nhid_half = int(nhid / 2)
      self.use_cluster_feat = use_cluster_feat
      self.use_focal_loss = use_focal_loss
  
      if self.use_cluster_feat:
          self.feature_dim = feature_dim * 2
      else:
          self.feature_dim = feature_dim
  
      input_dim = (feature_dim, nhid, nhid, nhid_half)
      output_dim = (nhid, nhid, nhid_half, nhid_half)
      self.conv = nn.ModuleList()
      self.conv.append(
          GraphConv(self.feature_dim, nhid, dropout, use_GAT, K)
      )
      for i in range(1, num_conv):
          self.conv.append(
              GraphConv(
                  input_dim[i], output_dim[i], dropout, use_GAT, K
              )
          )
  
      self.src_mlp = nn.Linear(output_dim[num_conv - 1], nhid_half)
      self.dst_mlp = nn.Linear(output_dim[num_conv - 1], nhid_half)
  
      self.classifier_conn = nn.Sequential(
          nn.PReLU(nhid_half),
          nn.Linear(nhid_half, nhid_half),
          nn.PReLU(nhid_half),
          nn.Linear(nhid_half, 2),
      )
  
      if self.use_focal_loss:
          self.loss_conn = FocalLoss(2)
      else:
          self.loss_conn = nn.CrossEntropyLoss()
      self.loss_den = nn.MSELoss()
  
      self.balance = balance
  
file_path: dgl/examples/pytorch/hilander/models/lander.py
imports: import dgl
  import dgl.function
  import numpy
  import torch
  import torch.nn
  import torch.nn.functional
  from .focal_loss import FocalLoss
  from .graphconv import GraphConv
label_desc: Use image node_id 1 to create a new LANDER object from inherited base classes: nn with example: obj = LANDER(feature_dim, nhid, num_conv, dropout, use_GAT, K, balance, use_cluster_feat, use_focal_loss)