code: def get_model(self, name="GraphSAGE"):
      if name != "GraphSAGE":
          raise ValueError("only GraphSAGE is currently supported")
  
      num_input_features = self.__dataset.num_input_features
      num_output_features = self.__dataset.num_labels
      num_layers = len(self.__loader_kwargs["num_neighbors"])
  
      with torch.cuda.device(self.__device):
          model = (
              GraphSAGE(
                  in_channels=num_input_features,
                  hidden_channels=64,
                  out_channels=num_output_features,
                  num_layers=num_layers,
              )
              .to(torch.float32)
              .to(self.__device)
          )
          model = ddp(model, device_ids=[self.__device])
          print("done creating model")
  
      return model
  
imports: from trainers import Trainer
  from trainers import extend_tensor
  from datasets import OGBNPapers100MDataset
  from models.pyg import GraphSAGE
  import torch
  import numpy
  import torch.distributed
  from torch.nn.parallel import DistributedDataParallel
  import torch.nn.functional
  from torch_geometric.utils.sparse import index2ptr
  from torch_geometric.data import HeteroData
  from torch_geometric.loader import NeighborLoader
  import gc
  import os
  import time
label_desc: Use image node_id 9 for calling the PyGNativeTrainer obj's underlying member method code with example usage: obj.get_model(name) and returns: model