in data.py [0:0]
def __next__(self):
while True:
try:
if (self._done.is_set()
or (self._feeder_queue.empty() and
not any(x.is_alive() for x in self._workers)
and self._data_queue.empty())):
self._done.set()
raise StopIteration
data = self._data_queue.get(timeout=1)
self._ndone += 1
if (self._ndone % 10) == 0 and self._ndone + len(self._workers) < self._size and self._data_queue.empty():
logging.warn("Data queue is empty... Use more dataloading threads!")
if (self._ndone % min(self._size // 10, 500)) == 0:
logging.info("Done {} / {}".format(self._ndone, self._size))
logging.debug("Data queue has approx size: {}".format(self._data_queue.qsize()))
return self.postprocess(data)
except queue.Empty:
pass