class_docstr: Abstract class for Dataset that can be splitted.
  
  Args:
      labelled: An array that acts as a mask which is greater than 1 for every
          data point that is labelled, and 0 for every data point that is not
          labelled.
      random_state: Set the random seed for label_randomly().
      last_active_steps: If specified, will iterate over the last active steps
                          instead of the full dataset. Useful when doing partial finetuning.
code: def __init__(
      self,
      labelled,
      random_state=None,
      last_active_steps: int = -1,
  ) -> None:
      self.labelled_map = labelled
      self.random_state = check_random_state(random_state)
      if last_active_steps == 0 or last_active_steps < -1:
          raise ValueError(
              "last_active_steps must be > 0 or -1 when disabled."
          )
      self.last_active_steps = last_active_steps
      self._indices_cache = (-1, None)
  
imports: import warnings
  from typing import Union, List, Optional, Any, TYPE_CHECKING, Protocol
  import numpy
  from sklearn.utils import check_random_state
  from torch.utils import data
label_desc: Use image node_id 1 to create a new SplittedDataset object from inherited base classes: Dataset with example: obj = SplittedDataset(labelled, random_state, last_active_steps)