A DataSetIterator that works on an Iterator<MultiDataSet>, combining and splitting the input DataSet objects as
required to get a specified batch size.
Typically used in Spark training, but may be used elsewhere.
NOTE: reset method is not supported here.
Does this MultiDataSetIterator support asynchronous prefetching of multiple MultiDataSet objects?
Most MultiDataSetIterators do, but in some cases it may not make sense to wrap this iterator in an
iterator that does asynchronous prefetching. For example, it would not make sense to use asynchronous
prefetching for the following types of iterators:
(a) Iterators that store their full contents in memory already
(b) Iterators that re-use features/labels arrays (as future next() calls will overwrite past contents)
(c) Iterators that already implement some level of asynchronous prefetching
(d) Iterators that may return different data depending on when the next() method is called