Class ImageFolder
java.lang.Object
ai.djl.training.dataset.RandomAccessDataset
ai.djl.basicdataset.cv.ImageDataset
ai.djl.basicdataset.cv.classification.ImageClassificationDataset
ai.djl.basicdataset.cv.classification.AbstractImageFolder
ai.djl.basicdataset.cv.classification.ImageFolder
- All Implemented Interfaces:
ai.djl.training.dataset.Dataset
A dataset for loading image files stored in a folder structure.
Below is an example directory layout for the image folder:
The image folder should be structured as follows:
root/shoes/Aerobic Shoes1.png
root/shoes/Aerobic Shose2.png
...
root/boots/Black Boots.png
root/boots/White Boots.png
...
root/pumps/Red Pumps.png
root/pumps/Pink Pumps.png
...
here shoes, boots, pumps are your labels
Here, the dataset will take the folder names (shoes, boots, bumps) in sorted order as your labels. Nested folder structures are not currently supported.
Then, you can create your instance of the dataset as follows:
// set the image folder path
Repository repository = Repository.newInstance("folder", Paths.get("/path/to/imagefolder/root");
ImageFolder dataset =
ImageFolder.builder()
.setRepository(repository)
.addTransform(new Resize(100, 100)) // Use image transforms as necessary for your data
.addTransform(new ToTensor()) // Usually required as the last transform to convert images to tensors
.setSampling(batchSize, true)
.build();
// call prepare before using
dataset.prepare();
// to get the synset or label names
List>String< synset = dataset.getSynset();
-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class ai.djl.basicdataset.cv.classification.AbstractImageFolder
AbstractImageFolder.ImageFolderBuilder<T extends AbstractImageFolder.ImageFolderBuilder<T>>Nested classes/interfaces inherited from class ai.djl.basicdataset.cv.ImageDataset
ImageDataset.BaseBuilder<T extends ImageDataset.BaseBuilder<T>>Nested classes/interfaces inherited from interface ai.djl.training.dataset.Dataset
ai.djl.training.dataset.Dataset.Usage -
Field Summary
Fields inherited from class ai.djl.basicdataset.cv.classification.AbstractImageFolder
items, mrl, prepared, synsetFields inherited from class ai.djl.basicdataset.cv.ImageDataset
flagFields inherited from class ai.djl.training.dataset.RandomAccessDataset
dataBatchifier, device, labelBatchifier, limit, pipeline, prefetchNumber, sampler, targetPipeline -
Method Summary
Modifier and TypeMethodDescriptionstatic ImageFolder.Builderbuilder()Creates a new builder to build aImageFolder.protected PathgetImagePath(String key) voidprepare(ai.djl.util.Progress progress) Methods inherited from class ai.djl.basicdataset.cv.classification.AbstractImageFolder
availableSize, getClasses, getClassNumber, getImage, getImageHeight, getImageWidth, getSynset, isImage, listImagesMethods inherited from class ai.djl.basicdataset.cv.classification.ImageClassificationDataset
get, matchingTranslatorOptionsMethods inherited from class ai.djl.basicdataset.cv.ImageDataset
getImageChannels, getRecordImageMethods inherited from class ai.djl.training.dataset.RandomAccessDataset
getData, getData, getData, getData, newSubDataset, newSubDataset, randomSplit, size, subDataset, subDataset, subDataset, subDataset, toArrayMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ai.djl.training.dataset.Dataset
prepare
-
Method Details
-
builder
Creates a new builder to build aImageFolder.- Returns:
- a new builder
-
getImagePath
- Specified by:
getImagePathin classAbstractImageFolder
-
prepare
- Throws:
IOException
-