Работа по расчету дат через юлианский день . Вы должны взять первый январь двух лет. Затем вы преобразовываете григорианские даты в юлианские числа, и после этого вы берете разницу.
Мне кажется, что вы пытаетесь достичь чего-то подобного:
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__()
Функции генератора - это не сами генераторы, а «фабрики генераторов» - каждый раз, когда вы вызываете 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)
работает точно так же, более читабельно и немного быстрее ...