What is the best way to combine Dataloaders that have different batch sizes and different data shapes while still preserving the multi-process capabilities of the Dataloader?

where data from dl1
data_a.shape = (3, 7) , where 3 is the batch size from dl1
data_b.shape = (3, 11)

where data from dl2
data_c.shape = (5, 13), where 5 is the batch size from dl2

I would like the combined data to be a simple joining of the data
data_a.shape = (3, 7), where 3 is the batch size from dl1
data_b.shape = (3, 11), where 3 is the batch size from dl1
data_c.shape = (5, 13), where 5 is the batch size from dl2

Also, itertools might provide you some methods, which e.g. could iterate the longest DataLoader by cycling the shorter one or by returning None instead (the standard zip would use the shortest loader).