Hi,
The Dataloader fetches batches so that it can perform all the preprocessing and creation on the batch on the worker process and have as few things as possible to do in the main process once the batch is ready.
Why would you want workers to load samples only?
Each worker prefetches 2 batches in advance to make sure that when the main process asks for the next batch, there is always one ready.
Note that if you use nightly build, you can control that number with the prefetch_factor argument to the dataloader (doc here: https://pytorch.org/docs/master/data.html#torch.utils.data.DataLoader 131)