Function mindspore::dataset::ImageFolder

Function Documentation

inline std::shared_ptr<ImageFolderDataset> mindspore::dataset::ImageFolder(const std::string &dataset_dir, bool decode = false, const std::shared_ptr<Sampler> &sampler = std::make_shared<RandomSampler>(), const std::set<std::string> &extensions = {}, const std::map<std::string, int32_t> &class_indexing = {}, const std::shared_ptr<DatasetCache> &cache = nullptr)

Function to create an ImageFolderDataset.

Note

A source dataset that reads images from a tree of directories. All images within one folder have the same label. The generated dataset has two columns [“image”, “label”].

Parameters
  • dataset_dir[in] Path to the root directory that contains the dataset.

  • decode[in] A flag to decode in ImageFolder.

  • sampler[in] Shared pointer to a sampler object used to choose samples from the dataset. If sampler is not given, a RandomSampler will be used to randomly iterate the entire dataset (default = RandomSampler()).

  • extensions[in] File extensions to be read.

  • class_indexing[in] a class name to label map.

  • cache[in] Tensor cache to use (default=nullptr which means no cache is used).

Returns

Shared pointer to the ImageFolderDataset.

Example
/* Define dataset path and MindData object */
std::string dataset_path = "/path/to/image_directory";
std::shared_ptr<Dataset> ds = ImageFolder(dataset_path, true, std::make_shared<RandomSampler>(false, 10));

/* Create iterator to read dataset */
std::shared_ptr<Iterator> iter = ds->CreateIterator();
std::unordered_map<std::string, mindspore::MSTensor> row;
iter->GetNextRow(&row);

/* Note: In ImageFolder dataset, each data dictionary has keys "image" and "label" */
auto image = row["image"];