Chainer 迭代器,用于包含多个示例的文件,无需预加载



我有超过 100,000 个文件,每个文件包含 20 多个示例。每个文件的示例数不同。如何在 Chainer 中创建批处理大小为 ~10 的迭代器,而无需预加载内存中的所有文件?

我认为您可以使用DatasetMixin类来定义自己的数据集。 您可以覆盖get_example(i)方法来提取i-th数据,因此您可以在需要get_example(i)中的数据时加载文件。 但是,它仍然需要"预索引",这意味着您需要定义哪些i-th 数据对应于哪个文件。

下面是如何定义自己的DatasetMixin类的参考。

参考: - Chainer v3初学者教程(日语) - 使用DatasetMixin从您自己的数据创建数据集类

请参阅使用DatasetMixin按需加载图像的官方示例: https://github.com/chainer/chainer/blob/master/examples/imagenet/train_imagenet.py#L39

最新更新