code: def generate_2convs_link_pred_layers(hete, conv, hidden_size):
      convs1 = {}
      convs2 = {}
      for message_type in hete.message_types:
          n_type = message_type[0]
          s_type = message_type[2]
          n_feat_dim = hete.num_node_features(n_type)
          s_feat_dim = hete.num_node_features(s_type)
          convs1[message_type] = conv(
              n_feat_dim, hidden_size, s_feat_dim
          )
          convs2[message_type] = conv(
              hidden_size, hidden_size, hidden_size
          )
      return convs1, convs2
  
imports: import argparse
  import copy
  import time
  import numpy
  import networkx
  import sklearn.metrics
  import torch
  import torch.nn
  import torch.nn.functional
  from torch.utils.data import DataLoader
  from torch_geometric.datasets import Planetoid
  from torch_geometric.datasets import TUDataset
  import torch_geometric.transforms
  import torch_geometric.nn
  from deepsnap.hetero_graph import HeteroGraph
  from deepsnap.dataset import GraphDataset
  from deepsnap.batch import Batch
  from deepsnap.hetero_gnn import HeteroSAGEConv, HeteroConv, forward_op
label_desc: Use image node_id 1 for calling a global function with example usage: generate_2convs_link_pred_layers(hete, conv, hidden_size) and returns: convs1,  convs2