Как определить генератор пакетов в Python?

Работа по расчету дат через юлианский день . Вы должны взять первый январь двух лет. Затем вы преобразовываете григорианские даты в юлианские числа, и после этого вы берете разницу.

0
задан Prashant Goyal 18 January 2019 в 07:25
поделиться

2 ответа

Мне кажется, что вы пытаетесь достичь чего-то подобного:

def batch_generator(image_paths, batch_size, isTraining):
    your_code_here

Вызов генератора - вместо того, что у вас есть:

index = next(batch_generator(train_dataset, 10, True))

:

index = iter(batch_generator(train_dataset, 10, True))
index.__next__()
0
ответ дан kerwei 18 January 2019 в 07:25
поделиться

Функции генератора - это не сами генераторы, а «фабрики генераторов» - каждый раз, когда вы вызываете batch_generator(...), он возвращает новый генератор, готовый к повторному запуску. IOW, вы хотите:

gen = batch_generator(...)
for batch in gen:       
    do_something_with(batch)

Также:

1 / то, как вы написали свою функцию генератора, создаст бесконечный генератор - внешний цикл while будет повторяться вечно - что может быть или не быть что ты ожидал (подумал, что лучше предупредить тебя).

2 / в вашем коде есть две логические ошибки: сначала вы не сбрасываете список batch_labels, затем в последнем yield вы получаете только batch_imgs, который не согласуется с внутренним yield ]. FWIW, вместо того, чтобы поддерживать два списка (один для изображений и другой для меток), вам, возможно, будет лучше использовать один единственный список (img, label) кортежей.

И последнее замечание: вам не нужно использовать range(len(lst)) для итерации по списку - цикл for в Python имеет тип foreach, он напрямую перебирает элементы итерируемого, то есть: [ 1115]

for path image_paths:
    print(path)

работает точно так же, более читабельно и немного быстрее ...

0
ответ дан bruno desthuilliers 18 January 2019 в 07:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: