code: def forward(self, g, h):
      with g.local_scope():
          g.ndata["h"] = h
          # Compute a new edge feature named 'score' by a dot-product between the
          # source node feature 'h' and destination node feature 'h'.
          g.apply_edges(fn.u_dot_v("h", "h", "score"))
          # u_dot_v returns a 1-element vector for each edge so you need to squeeze it.
          return g.edata["score"][:, 0]
  
imports: import dgl
  import torch
  import pickle
  import torch.nn
  import torch.nn.functional
  import numpy
  import scipy.sparse
  import dgl.function
  import random
  from dgl.data import CoraGraphDataset, PubmedGraphDataset, CiteseerGraphDataset
  from autogl.module.model.dgl import AutoSAGE, AutoGCN, AutoGAT
  import dgl.data
  from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter
  from tqdm import tqdm
  from helper import get_encoder_decoder_hp
  from sklearn.metrics import roc_auc_score
label_desc: Use image node_id 1 for calling the DotPredictor obj's underlying member method code with example usage: obj.forward(g, h) and returns: g