Одним из тривиальных решений может быть предварительная обработка набора данных и отдельное сохранение нескольких меньших урожаев исходных трехмерных томов.Таким образом, вы жертвуете некоторым дисковым пространством для более эффективного ввода-вывода.
Обратите внимание, что здесь вы можете найти компромисс с размером урожая: экономя больше урожаев, чем нужно для ввода, вы все равно можете делать случайное увеличение урожая намуха.Если вы сохраняете перекрывающиеся урожаи на этапе предварительной обработки, то вы можете гарантировать, что все возможные случайные урожаи исходного набора данных все еще могут быть получены.
В качестве альтернативы вы можете попробовать использовать пользовательский загрузчик данных, который сохраняет полные тома.для нескольких партий.Будьте осторожны, это может создать некоторую корреляцию между партиями.Поскольку многие алгоритмы машинного обучения основаны на выборках iid (например, Stochastic Gradient Descent), коррелированные партии могут легко вызвать серьезную путаницу.