federer
Version:
Experiments in asynchronous federated learning and decentralized learning
30 lines • 1.51 kB
TypeScript
import { ShardFn } from "./PreprocessPipeline";
/**
* Split a dataset into shards, where each shard holds a different label.
*
* @param numShards Number of shards to split a dataset into
* @returns A function that takes a {@link DataSubset}, and returns a list of
* shards, where each shard holds a different label.
*/
export declare function shardByLabel(numShards: number): ShardFn;
/**
* Splits a dataset into shards, by sorting the dataset by label, splitting into
* `numberBatches` batches, and then combining `numberBatchesPerShard` batches
* per shard.
*
* @param numberLabelClasses Number of different labels in the dataset
* @param numberBatches Number of batches to produce
* @param numberBatchesPerShard Number of batches to place in a shard
* @returns A function that takes a {@link DataSubset}, and returns a list of
* shards, where each shard is as described above.
*/
export declare function shardIntoSortedLabelBatches(numberLabelClasses: number, numberBatches: number, numberBatchesPerShard: number): ShardFn;
export declare function shardIntoSkedwedBatches(numberLabelClasses: number, numberShards: number, skewFactorS: number): ShardFn;
/**
* Combines sortedLables and skewed functions to create unbalanced
* shards with lowerbound on samples per shard.
*
* @returns a shard function
*/
export declare function shardIntoUnbalancedBatchesPerBatch(sortedLabelBatches: ShardFn, skewedBatches: ShardFn, sortedLabelSplit: number): ShardFn;
//# sourceMappingURL=shard.d.ts.map