code: def __init__(self, loader: "Loader"):
      super().__init__(loader)
  
      # TODO filter only the samples we care about!!
      self.page_to_samples = loader.memory_manager.page_to_samples
  
      if not self.page_to_samples:
          raise ValueError(
              "Dataset won't benefit from QuasiRandom order, use regular Random"
          )
  
      if self.distributed:
          raise NotImplementedError(
              "distributed Not implemented yet for QuasiRandom"
          )
  
      self.prepare_data_structures()
  
file_path: ffcv/ffcv/traversal_order/quasi_random.py
imports: import random
  from typing import Sequence, TYPE_CHECKING
  from numba import njit
  import numpy
  from torch.utils.data import DistributedSampler
  from .base import TraversalOrder
label_desc: Use image node_id 1 to create a new QuasiRandom object from inherited base classes: TraversalOrder with example: obj = QuasiRandom(loader)