До сих пор я использовал Multiprocessing
и Multi-threading
на functions
, что return
результат в конце. Я знаю multiprocessing.Queue
и multiprocessing.Queue.get()
, но я просто не понимаю, как я могу применить это к загрузчику данных ..
Я борюсь со следующей задачей:
def data_loader():
for _ in range(10**6):
#calculates for some seconds
yield result
for data in data_loader():
train_AI(data)
#Here an AI is being trained for another some seconds
Так что мой Вопрос в том, есть ли какой-нибудь простой способ заставить мой существующий data_loader
вычислить (пребуферировать) его следующий yield
, пока ИИ обучается на GPU?
Или мне пришлось бы полностью реструктурировать это с помощью внешнего итератора, который вызывает внутренний меньший загрузчик data_loader, который returns
один пакет каждый раз, когда он вызывается?