ptyrad.io.dataloader

ptyrad.io.dataloader#

Custom DataLoader class to load batched measurements either from GPU device memory or host RAM.

Classes

IndicesDataset(indices)

The Dataset class used specifically for the multiGPU mode for DDP

MeasDataLoader(meas_arr[, preload_data, ...])

Data loader for PtyRAD experimental measurements with on-the-fly processing.

class ptyrad.io.dataloader.MeasDataLoader(meas_arr, preload_data=True, device='cuda', dtype=torch.float32, meas_padded=None, meas_padded_idx=None, meas_scale_factors=None)[source]#

Bases: object

Data loader for PtyRAD experimental measurements with on-the-fly processing.

Handles indexed slicing of experimental pattern arrays with flexible device placement (CPU/GPU), on-demand or pre-loaded options, and optional on-the-fly padding/resampling.

Parameters:
  • meas_arr (ndarray) – np.ndarray of experimental diffraction patterns [N, H, W]

  • preload_data (bool) – If True, load all data into device memory at initialization. If False, load on-demand per access. Default: True

  • device (str | device) – torch.device or str (‘cpu’, ‘cuda’, etc.). Default: ‘cuda’

  • dtype (dtype) – torch data type for output tensors. Default: torch.float32

  • meas_padded (ndarray | None) – Optional np.ndarray for on-the-fly padding. Padded pattern template.

  • meas_padded_idx (tuple | None) – Optional tuple (pad_h1, pad_h2, pad_w1, pad_w2) for padding regions.

  • meas_scale_factors (tuple | None) – Optional tuple (scale_h, scale_w) for on-the-fly resampling.

class ptyrad.io.dataloader.IndicesDataset(indices)[source]#

Bases: Dataset

The Dataset class used specifically for the multiGPU mode for DDP