docstr: handles train/validation/test split to have 3 datasets each with data from all domains
code: def prepare_data_loaders(self):
      """
      handles train/validation/test split to have 3 datasets each with data from all domains
      """
      raise NotImplementedError()
  
imports: import logging
  import os
  from enum import Enum
  from typing import Any, Callable, cast, Dict, List, Optional, Tuple
  import numpy
  import torch.utils.data
  from sklearn.utils import check_random_state
  from torchvision.datasets import VisionDataset
  from torchvision.datasets.folder import default_loader, has_file_allowed_extension, IMG_EXTENSIONS
  from kale.loaddata.dataset_access import DatasetAccess, get_class_subset, split_by_ratios
  from kale.loaddata.sampler import FixedSeedSamplingConfig, get_labels, MultiDataLoader, SamplingConfig
label_desc: Use image node_id 1 for calling the DomainsDatasetBase obj's underlying member method code with example usage: obj.prepare_data_loaders() without return types