class_docstr: Base class for a meta-dataset, where the classification tasks are over 
  multiple classes from a `ClassDataset`.
  
  Parameters
  ----------
  dataset : `ClassDataset` instance
      A dataset of classes. Each item of `dataset` is a dataset, containing 
      all the examples from the same class.
  
  num_classes_per_task : int
      Number of classes per tasks. This corresponds to `N` in `N-way` 
      classification.
  
  target_transform : callable, optional
      A function/transform that takes a target, and returns a transformed 
      version. See also `torchvision.transforms`.
  
  dataset_transform : callable, optional
      A function/transform that takes a dataset (ie. a task), and returns a 
      transformed version of it. E.g. `transforms.ClassSplitter()`.
code: def __init__(
      self,
      dataset,
      num_classes_per_task,
      target_transform=None,
      dataset_transform=None,
  ):
      if not isinstance(num_classes_per_task, int):
          raise TypeError(
              "Unknown type for `num_classes_per_task`. Expected "
              "`int`, got `{0}`.".format(type(num_classes_per_task))
          )
      self.dataset = dataset
      self.num_classes_per_task = num_classes_per_task
      # If no target_transform, then use a default target transform that
      # is well behaved for the `default_collate` function (assign class
      # augmentations ot integers).
      if target_transform is None:
          target_transform = DefaultTargetTransform(
              dataset.class_augmentations
          )
  
      super(CombinationMetaDataset, self).__init__(
          meta_train=dataset.meta_train,
          meta_val=dataset.meta_val,
          meta_test=dataset.meta_test,
          meta_split=dataset.meta_split,
          target_transform=target_transform,
          dataset_transform=dataset_transform,
      )
  
imports: import sys
  import numpy
  import warnings
  from copy import deepcopy
  from itertools import combinations
  from ordered_set import OrderedSet
  from torchvision.transforms import Compose
  from torchmeta.utils.data.task import ConcatTask
  from torchmeta.transforms import FixedCategory, Categorical, DefaultTargetTransform
  from torchmeta.transforms.utils import wrap_transform
label_desc: Use image node_id 1 to create a new CombinationMetaDataset object from inherited base classes: MetaDataset with example: obj = CombinationMetaDataset(dataset, num_classes_per_task, target_transform, dataset_transform)