Each worker will load a complete batch in the background (if num_workers>0) while the training is executed. There is a feature request to allow multiple workers to work on a single batch, but I don’t think it’s implemented yet.
The prefetch_factor defines the number of batches, which are preloaded, if I’m not mistaken, so 500 would be quite large (it could be alright, if you have enough memory).