У меня более 100 000 файлов, содержащих более 20 примеров в каждом файле. Количество образцов в файле различается. Как я могу создать итератор с размером пакета ~ 10 в Chainer без предварительной загрузки всех файлов в память?
Chainer Iterator для файлов, содержащих несколько примеров, без предварительной загрузки
Ответы (1)
Я думаю, вы можете использовать класс DatasetMixin
для определения собственного набора данных. Вы можете переопределить метод get_example(i)
для извлечения i
-х данных, чтобы вы могли загрузить файл, когда вам понадобятся данные внутри get_example(i)
. Тем не менее, он все еще нуждается в «предварительном индексировании», что означает, что вам нужно определить, какие i
-е данные соответствуют какому файлу.
Ниже приведены ссылки, как определить собственный класс DatasetMixin
.
Ссылка: - Учебное пособие по Chainer v3 для начинающих (японский) - Создайте класс набора данных из ваших собственных данных с помощью DatasetMixin
См. официальный пример, который использует DatasetMixin
для загрузки изображения по запросу: https://github.com/chainer/chainer/blob/master/examples/imagenet/train_imagenet.py#L39