a *f@sjddlZddlmZddlmZmZmZmZmZm Z m Z eeZ eeeedddZ GdddZ dS) N)deque)Any CollectionDequeIterableIteratorListSequenceiteratorpoolcCs|s|t||SN)extendnextpopleftr rK/data1/chongzheng_p23/Projects/CatVTON-hf/densepose/data/combined_loader.py _pooled_next src@sDeZdZdZdZeeeee dddZ e e e dddZd S) CombinedDataLoaderzB Combines data loaders using the provided sampling ratios dloaders batch_sizeratioscCs||_||_||_dSr r)selfrrrrrr__init__szCombinedDataLoader.__init__)returnc#sdd|jDg}tgt|sP|j|j}tjtt|j|j|d}z"fdd|d|jD}Wnt yYqYn0||jd}|Vq$dS)NcSsg|] }t|qSr)iter).0loaderrrr z/CombinedDataLoader.__iter__..)kcsg|]}t||qSr)r)riitersr rrr *r!) rrlenr BATCH_COUNTrandomchoicesranger StopIteration)rindicesr"batchrr$r__iter__s "  zCombinedDataLoader.__iter__N)__name__ __module__ __qualname____doc__r'rLoaderintr floatrrrrr.rrrrrsr)r( collectionsrtypingrrrrrrr r3rrrrrrs  $