ИМО, никаких библиотек не нужно.Вы можете просто определить свой собственный генератор пакетов
def batch_iter(batch_size, iter_):
yield [next(iter_) for _ in range(batch_size)]
и просто
next(batch_iter(batch_size, x))
Итеративно-безопасная версия будет
def batch_iter(batch_size, iter_):
r = []
for _ in range(b):
val = next(iter_, None)
if val is not None: r.append(val)
yield r
Конечно, вы можете yield tuple(r)
вместо r
, если вам нужны значения кортежа.Вы также можете добавить предложение else
и цикл break
, поскольку, если val
равно None
, больше нет значений для итерации