Data Pipelines
Loading, transforming, and feeding data for training — RecordReader, DataSetIterator, normalization, and mini-batching
1. The Data Pipeline
Raw Data → InputSplit → RecordReader → RecordReaderDataSetIterator → DataSet/DataSetIterator → Model.fit()2. InputSplit
import org.datavec.api.split.FileSplit;
import org.datavec.api.split.NumberedFileInputSplit;
import org.datavec.api.split.CollectionInputSplit;
// Point at a directory and filter by extension
FileSplit fileSplit = new FileSplit(new File("/path/to/data"), new String[]{"csv"});
// Point at a numbered sequence of files (e.g., train_0.csv … train_99.csv)
NumberedFileInputSplit numberedSplit = new NumberedFileInputSplit("/path/train_%d.csv", 0, 99);
// Point at an explicit list of URIs
CollectionInputSplit collSplit = new CollectionInputSplit(uriList);3. RecordReader
CSV Data
Image Data
Sequence (Time Series) Data
Other RecordReader Implementations
Class
Use case
4. DataSet and MultiDataSet
Array Shapes by Network Type
Network type
Features shape
Labels shape
MultiDataSet
5. RecordReaderDataSetIterator
Classification
Regression
Image Classification
Sequence Data
Multiple Inputs and Outputs
6. Mini-Batching
Choosing a Batch Size
Batch size
Effect
7. Built-in Dataset Iterators
8. Normalization
NormalizerStandardize (zero mean, unit variance)
NormalizerMinMaxScaler (range scaling)
ImagePreProcessingScaler
VGG16ImagePreProcessor
Critical Rule: Fit on Training Data Only
9. Async Data Loading
Putting It Together: A Complete CSV Example
Last updated
Was this helpful?