code: def __init__(
      self, in_channels, out_channels, edge_dim, pre_conv=True
  ):
      super(MlpMessageConv, self).__init__(aggr="add")
      self.pre_conv = None
      if pre_conv:
          self.pre_conv = nn.Sequential(
              nn.Linear(in_channels, in_channels), nn.ReLU()
          )
      self.message_mlp = nn.Sequential(
          nn.Linear(in_channels * 2 + edge_dim, out_channels),
      )
  
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 MlpMessageConv object from inherited base classes: pyg_nn with example: obj = MlpMessageConv(in_channels, out_channels, edge_dim, pre_conv)