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 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, synset
Fields inherited from class ai.djl.basicdataset.cv.ImageDataset
flag
Fields inherited from class ai.djl.training.dataset.RandomAccessDataset
dataBatchifier, device, labelBatchifier, limit, pipeline, prefetchNumber, sampler, targetPipeline
-
Method Summary
Modifier and TypeMethodDescriptionstatic ImageFolder.Builder
builder()
Creates a new builder to build aImageFolder
.protected Path
getImagePath
(String key) void
prepare
(ai.djl.util.Progress progress) Methods inherited from class ai.djl.basicdataset.cv.classification.AbstractImageFolder
availableSize, getClasses, getClassNumber, getImage, getImageHeight, getImageWidth, getSynset, isImage, listImages
Methods inherited from class ai.djl.basicdataset.cv.classification.ImageClassificationDataset
get, matchingTranslatorOptions
Methods inherited from class ai.djl.basicdataset.cv.ImageDataset
getImageChannels, getRecordImage
Methods inherited from class ai.djl.training.dataset.RandomAccessDataset
getData, getData, getData, getData, newSubDataset, newSubDataset, randomSplit, size, subDataset, subDataset, subDataset, subDataset, toArray
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods 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:
getImagePath
in classAbstractImageFolder
-
prepare
- Throws:
IOException
-