code: def __init__(self, input_dim, edge_feat_dim, num_classes, args):
      super(Net, self).__init__()
      self.model = args.model
      if self.model == "MlpMessage":
          self.conv1 = MlpMessageConv(
              input_dim, args.hidden_dim, edge_feat_dim
          )
          self.conv2 = MlpMessageConv(
              args.hidden_dim, args.hidden_dim, edge_feat_dim
          )
      else:
          raise ValueError("unknown conv")
      self.loss_fn = torch.nn.CrossEntropyLoss()
      self.lp_mlp = nn.Linear(args.hidden_dim * 2, num_classes)
  
imports: import argparse
  import copy
  import csv
  import numpy
  import time
  import torch
  import torch.nn
  import torch.nn.functional
  from torch.utils.tensorboard import SummaryWriter
  import networkx
  import numpy
  import sklearn.metrics
  import torch_geometric.transforms
  import torch_geometric.nn
  from torch.utils.data import DataLoader
  from deepsnap.hetero_graph import HeteroGraph
  from deepsnap.dataset import GraphDataset
  from deepsnap.batch import Batch
label_desc: Use image node_id 1 to create a new Net object from inherited base classes: torch.nn with example: obj = Net(input_dim, edge_feat_dim, num_classes, args)