mindspore.dataset.dataloader.IterableDataset

查看源文件
class mindspore.dataset.dataloader.IterableDataset[源代码]

可迭代数据集的基类。

Iterable style 数据集应该继承自此类。

Iterable style 数据集表示了一种返回数据样本的可迭代对象。当随机读取数据的成本高昂甚至无法实现时尤其有用。 子类必须重写 __iter__() 方法,返回用于迭代数据集样本的迭代器。

样例:

>>> from mindspore.dataset.dataloader import IterableDataset, get_worker_info
>>>
>>> class IterableStyleDataset(IterableDataset):
...     def __init__(self, num_samples):
...         self.start = 0
...         self.end = num_samples
...
...     def __iter__(self):
...         worker_info = get_worker_info()
...         if worker_info is None:
...             return iter(range(self.start, self.end))
...         else:
...             worker_id = worker_info.id
...             num_workers = worker_info.num_workers
...             return iter(range(self.start + worker_id, self.end, num_workers))