Chainer provides some iterators that implement typical strategies to create mini-batches by iterating over datasets. SerialIterator is the simplest one, which extract mini-batches in the main thread. MultiprocessIterator and MultithreadIterator are a parallelized version of SerialIterator. It maintains worker subprocesses and subthreads to load the next mini-batch in parallel.

chainer.iterators.SerialIterator Dataset iterator that serially reads the examples.
chainer.iterators.MultiprocessIterator Dataset iterator that loads examples in parallel.
chainer.iterators.MultithreadIterator Dataset iterator that loads examples in parallel.
chainer.iterators.DaliIterator (Experimental) Iterator for DALI pipeline.

Order sampler examples

An Iterator iterates over a dataset according to an order represented by a 1-D array of indices. Order samplers are callables that are used by those iterators to generate this array.

chainer.iterators.OrderSampler Base class of all order samplers.
chainer.iterators.ShuffleOrderSampler Sampler that generates random orders.