IidPartitioner#
IID dataset partitioning: shuffle, then split into equal-size shards.
- class krum.primitives.data_partitioners.iid.IidPartitioner[source]#
Bases:
DataPartitionerIID partitioner: shuffle the dataset, then split into
nequal shards.The dataset is shuffled and cut into
nequal-size, disjoint, uniformly random shards, one per worker. Any remainder (len(dataset) % nsamples) is dropped.- classmethod partition(dataset: Dataset[Any], /, *, n: int, seed: int = 42, **specialized: Any) list[Subset[Any]][source]#
Shuffle
datasetand split it intonequal-size shards.- Parameters:
dataset – Full dataset to partition across workers.
n – Number of workers to split the dataset across.
seed – Random seed for the shard permutation.
**specialized – Additional keyword arguments (unused).
- Returns:
List of ``n`` datasets, each an equal-size, disjoint, uniformly
random shard.
- Raises:
ValueError – If
n < 1, ordatasetis nonempty but has fewer thannsamples.
See also
For a per-class label-skew strategy, see DirichletPartitioner. For a shard-granularity interpolation from IID, see PerLabelsPartitioner.