code: def WN_transform(G, num_edge_types, input_dim=5):
      H = nx.MultiDiGraph()
      for node in G.nodes():
          H.add_node(
              node, node_type="n1", node_feature=torch.ones(input_dim)
          )
      for u, v, edge_key in G.edges:
          l = G[u][v][edge_key]["e_label"]
          e_feat = torch.zeros(num_edge_types)
          e_feat[l] = 1.0
          H.add_edge(u, v, edge_feature=e_feat, edge_type=str(l.item()))
      return H
  
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 3 for calling a global function with example usage: WN_transform(G, num_edge_types, input_dim) and returns: H