Package ai.djl.translate
Class StackBatchifier
java.lang.Object
ai.djl.translate.StackBatchifier
- All Implemented Interfaces:
Batchifier
,Serializable
StackBatchifier
is used to merge a list of samples to form a mini-batch of NDArray(s).
The is default Batchifier
for data loading.- See Also:
-
Field Summary
Fields inherited from interface ai.djl.translate.Batchifier
STACK
-
Constructor Summary
Constructors -
Method Summary
-
Constructor Details
-
StackBatchifier
public StackBatchifier()
-
-
Method Details
-
batchify
Converts an array ofRecord
NDList
s into a combinedBatch
NDList.The size of the input array is the batch size. The data in each of the
NDList
are assumed to be the same, and are batched together to form one batchedNDList
.- Specified by:
batchify
in interfaceBatchifier
- Parameters:
inputs
- the input array ofNDList
where each element is a- Returns:
- the batchified
NDList
-
unbatchify
Splits a combinedBatch
NDList
into it's constituentRecord
NDList
s.This reverses the
batchify
operation.- Specified by:
unbatchify
in interfaceBatchifier
- Parameters:
inputs
- theNDList
that needs to be 'unbatchified'- Returns:
- an array of NDLists, of size equal to batch size, where each NDList is one element from the batch of inputs
-
split
Partitions the givenBatch
NDList
into multipleBatch
lists with smaller batch size.As an example, this function might be used for multi-GPU training where it takes the main batch and splits it into sub-batches that can be run on each GPU.
This function unbatchifies the input
NDList
, redistributes them into the given number of slices, and then batchify each of the slices to form an array ofNDList
.- Specified by:
split
in interfaceBatchifier
- Parameters:
list
- theNDList
that needs to be splitnumOfSlices
- the number of slices the list must be sliced intoevenSplit
- whether each slice must have the same shape- Returns:
- an array of
NDList
that contains all the slices
-