Skip to main content
PyTorch adapter for WSI tile datasets. Provides PytorchTileDataset, a torch.utils.data.Dataset adapter that wraps WSIDataset for use with torch.utils.data.DataLoader. Two sampling modes are supported:
  • "sequential" — patches in slide-load order (deterministic).
  • "random" — same patches, but indices are shuffled each epoch.
Both modes visit every patch exactly once per epoch. The data argument accepts three forms:
  • A ready-made WSIDataset.
  • A directory path (str or Path) — all supported WSI files inside it are discovered and loaded.
  • A list of file paths — each path is opened as a slide.
Example:

SamplingMode

Patch sampling strategy. Attributes:
  • SEQUENTIAL - Iterate over every patch in slide-load order.
  • RANDOM - Shuffle the global patch indices each epoch.
Example:

PytorchTileDataset

PyTorch-compatible dataset over WSI tiles with configurable ordering. Accepts a WSIDataset, a directory path, or a list of file paths. When a path or list is given, extractor is required so the slides can be opened and tiled automatically. "sequential" (default) Patches are returned in the order slides were loaded — slide 0 patch 0, slide 0 patch 1, …, slide N patch M. "random" The same set of patches, but the global indices are shuffled. Call shuffle between epochs (or at init) to re-randomise. In both modes len() equals the total patch count, and every patch is visited exactly once per full iteration.
One of:
  • A WSIDataset instance (used directly).
  • A str or Path pointing to a directory — all supported WSI files are discovered and loaded.
  • A list of file paths — each is opened as a slide.
  • extractor - Required when data is a path or list of paths. A configured TileExtractor used to tile each slide.
  • sampling - "sequential" or "random" (default "sequential").
  • transform - Optional callable applied to the np.ndarray (H, W, C) patch.
  • seed - Optional RNG seed for reproducible shuffling.
Raises:
  • ValueError - If data is a path/list but extractor is not provided.
  • FileNotFoundError - If a directory path contains no supported WSIs.
Example:

shuffle

Re-shuffles the global index mapping. Call this between epochs to get a different ordering. Has no effect when sampling is "sequential".
Optional RNG seed for reproducibility.
Example:

__len__

Returns the total number of patches in the dataset. Returns:
  • int - Total patch count across all slides.
Example:

__getitem__

Returns a (patch, metadata) tuple for a global patch index.
Global patch index (0-based).
Returns: Tuple[Any, Dict[str, Any]]: The patch array (or transformed output) and a metadata dictionary. Example: