Dataloader slower than normal execution?

Hi,
I am trying to retrieve a sequence of bounding boxes to train an RNN, to do so I defined a Dataloader like this :


I load a sequence of tensors, where tensors are the bounding boxes that have been resized to fit VGG16, from memory which is a quick operation so I thought that doing a Dataloader like this would be quicker than loading an image then cropping it to make a bounding box than resizing it for every call to get_item. The problem is that for some reason getting a batch takes approx. 10 seconds with num_workers =1 and ±2 minute with num_worker =10.
So I tried to manually make a batch by doing :

batch = []
for i in range(64):
det_frame_list = traindata[i]
label = trainlabel[i]
bbs = []
for j in range(len(det_frame_list)):
bbs.append(torch.load(det_frame_list[j]))
tensor_ret = torch.stack(bbs)
batch +=[tensor_ret]
batch = torch.stack(batch)

(don’t know how to use BBCode sorry!)

to see if my approach was slow but it instantly finishes with good output.
Since I am new to Pytorch I can’t figure out why this (Dataloader taking ages to make a batch) is happening, any help understanding this would be greatly appreciated!
Thanks