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
public final class ImageFolder extends AbstractImageFolder
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 Modifier and Type Class Description static class
ImageFolder.Builder
A builder for theImageFolder
.-
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>>
-
-
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
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static ImageFolder.Builder
builder()
Creates a new builder to build aImageFolder
.protected java.nio.file.Path
getImagePath(java.lang.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
-
-
-
-
Method Detail
-
builder
public static ImageFolder.Builder builder()
Creates a new builder to build aImageFolder
.- Returns:
- a new builder
-
getImagePath
protected java.nio.file.Path getImagePath(java.lang.String key)
- Specified by:
getImagePath
in classAbstractImageFolder
-
prepare
public void prepare(ai.djl.util.Progress progress) throws java.io.IOException
- Throws:
java.io.IOException
-
-