code: def get_indices_concattask(self, task):
      indices = OrderedDict([(split, []) for split in self.splits])
      cum_size = 0
  
      min_samples = min([len(dataset) for dataset in task.datasets])
      if min_samples < self._min_samples_per_class:
          raise ValueError(
              "The smallest number of samples in a class ({0}) "
              "is smaller than the minimum number of samples per class "
              "required by `WeightedClassSplitter` ({1}).".format(
                  min_samples, self._min_samples_per_class
              )
          )
  
      for dataset in task.datasets:
          num_samples = (
              min_samples
              if self.force_equal_per_class
              else len(dataset)
          )
          if self.shuffle:
              seed = (
                  hash(task) + hash(dataset) + self.random_state_seed
              ) % (2**32)
              dataset_indices = np.random.RandomState(seed).permutation(
                  num_samples
              )
          else:
              dataset_indices = np.arange(num_samples)
  
          ptr = 0
          for split, weight in self.splits.items():
              num_split = max(
                  self.min_num_samples, int(weight * num_samples)
              )
              split_indices = dataset_indices[ptr : ptr + num_split]
              if self.shuffle:
                  self.np_random.shuffle(split_indices)
              indices[split].extend(split_indices + cum_size)
          cum_size += num_samples
  
      return indices
  
imports: import torch
  import numpy
  from collections import OrderedDict, defaultdict
  from torchmeta.utils.data.task import Task, ConcatTask, SubsetTask
  from torchmeta.transforms.utils import apply_wrapper
label_desc: Use image node_id 3 for calling the WeightedClassSplitter_ obj's underlying member method code with example usage: obj.get_indices_concattask(task) and returns: indices