code: def _build_dataloader(self):
      dataset = SQuADDataset(
          root_dir=self.config["graph_construction_args"][
              "graph_construction_share"
          ]["root_dir"],
          topology_subdir=self.config["graph_construction_args"][
              "graph_construction_share"
          ]["topology_subdir"],
          graph_name=self.config["graph_construction_args"][
              "graph_construction_share"
          ]["graph_name"],
          dynamic_init_graph_name=self.config[
              "graph_construction_args"
          ]["graph_construction_private"].get(
              "dynamic_init_graph_type", None
          ),
          dynamic_init_topology_aux_args={"dummy_param": 0},
          pretrained_word_emb_name=self.config[
              "pretrained_word_emb_name"
          ],
          merge_strategy=self.config["graph_construction_args"][
              "graph_construction_private"
          ]["merge_strategy"],
          edge_strategy=self.config["graph_construction_args"][
              "graph_construction_private"
          ]["edge_strategy"],
          max_word_vocab_size=self.config["top_word_vocab"],
          min_word_vocab_freq=self.config["min_word_freq"],
          word_emb_size=self.config["word_emb_size"],
          share_vocab=self.config["share_vocab"],
          seed=self.config["seed"],
          thread_number=self.config["graph_construction_args"][
              "graph_construction_share"
          ]["thread_number"],
          port=self.config["graph_construction_args"][
              "graph_construction_share"
          ]["port"],
          timeout=self.config["graph_construction_args"][
              "graph_construction_share"
          ]["timeout"],
          for_inference=True,
          reused_vocab_model=self.model.vocab,
      )
  
      self.test_dataloader = DataLoader(
          dataset.test,
          batch_size=self.config["batch_size"],
          shuffle=False,
          num_workers=self.config["num_workers"],
          collate_fn=dataset.collate_fn,
      )
      self.vocab = dataset.vocab_model
      self.num_test = len(dataset.test)
      print("Test size: {}".format(self.num_test))
      self.logger.write("Test size: {}".format(self.num_test))
  
imports: import argparse
  import os
  import time
  import numpy
  import torch
  import torch.backends.cudnn
  import torch.multiprocessing
  from torch.utils.data import DataLoader
  from graph4nlp.pytorch.datasets.squad import SQuADDataset
  from graph4nlp.pytorch.modules.config import get_basic_args
  from graph4nlp.pytorch.modules.evaluation import BLEU, METEOR, ROUGE
  from graph4nlp.pytorch.modules.utils import constants
  from graph4nlp.pytorch.modules.utils.config_utils import get_yaml_config, update_values
  from graph4nlp.pytorch.modules.utils.copy_utils import prepare_ext_vocab
  from graph4nlp.pytorch.modules.utils.generic_utils import all_to_cuda
  from graph4nlp.pytorch.modules.utils.logger import Logger
  from .main import QGModel
label_desc: Use image node_id 2 for calling the ModelHandler obj's underlying member method code with example usage: obj._build_dataloader() without return types