code: def get_train_dataloader_dict(self):
      # Not currently supported distributed parallel
      train_dataloader_dict = {}
      for (
          task_name
      ) in self.jiant_task_container.task_run_config.train_task_list:
          task = self.jiant_task_container.task_dict[task_name]
          train_cache = self.jiant_task_container.task_cache_dict[
              task_name
          ]["train"]
          train_batch_size = (
              self.jiant_task_container.task_specific_configs[
                  task_name
              ].train_batch_size
          )
          train_dataloader_dict[task_name] = InfiniteYield(
              get_train_dataloader_from_cache(
                  train_cache=train_cache,
                  task=task,
                  train_batch_size=train_batch_size,
              )
          )
      return train_dataloader_dict
  
imports: from typing import Dict
  from dataclasses import dataclass
  import torch
  import jiant.tasks.evaluate
  import jiant.utils.torch_utils
  from jiant.proj.main.components.container_setup import JiantTaskContainer
  from jiant.proj.main.modeling.primary import JiantModel, wrap_jiant_forward
  from jiant.shared.constants import PHASE
  from jiant.shared.runner import complex_backpropagate, get_train_dataloader_from_cache, get_eval_dataloader_from_cache
  from jiant.utils.display import maybe_tqdm
  from jiant.utils.python.datastructures import InfiniteYield, ExtendedDataClassMixin
label_desc: Use image node_id 8 for calling the JiantRunner obj's underlying member method code with example usage: obj.get_train_dataloader_dict() and returns: train_dataloader_dict