code: def prepare_data_loaders(self):
      logging.debug("Load source")
      (
          self._source_by_split["train"],
          self._source_by_split["valid"],
      ) = self._source_access.get_train_valid(self._valid_split_ratio)
      if self.class_ids is not None:
          self._source_by_split["train"] = get_class_subset(
              self._source_by_split["train"], self.class_ids
          )
          self._source_by_split["valid"] = get_class_subset(
              self._source_by_split["valid"], self.class_ids
          )
  
      logging.debug("Load target")
      (
          self._target_by_split["train"],
          self._target_by_split["valid"],
      ) = self._target_access.get_train_valid(self._valid_split_ratio)
      if self.class_ids is not None:
          self._target_by_split["train"] = get_class_subset(
              self._target_by_split["train"], self.class_ids
          )
          self._target_by_split["valid"] = get_class_subset(
              self._target_by_split["valid"], self.class_ids
          )
  
      logging.debug("Load source Test")
      self._source_by_split["test"] = self._source_access.get_test()
      if self.class_ids is not None:
          self._source_by_split["test"] = get_class_subset(
              self._source_by_split["test"], self.class_ids
          )
      logging.debug("Load target Test")
      self._target_by_split["test"] = self._target_access.get_test()
      if self.class_ids is not None:
          self._target_by_split["test"] = get_class_subset(
              self._target_by_split["test"], self.class_ids
          )
  
      if self._n_fewshot is not None and self._n_fewshot > 0:
          # semi-supervised target domain
          self._labeled_target_by_split = {}
          for part in ["train", "valid", "test"]:
              (
                  self._labeled_target_by_split[part],
                  self._target_by_split[part],
              ) = _split_dataset_few_shot(
                  self._target_by_split[part], self._n_fewshot
              )
  
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 3 for calling the MultiDomainDatasets obj's underlying member method code with example usage: obj.prepare_data_loaders() without return types