If you push the complete data to the GPU, you could still use a DataLoader for batching and shuffling, but multiple workers won’t do much (and might yield errors for multiple CUDA context initializations).
Anyway, the easiest approach would be to load your data beforehand, push it to the GPU via:
data = data.to('cuda')
target = target.to('cuda')

and create a TensorDataset.
Once this is done, you could wrap it into a DataLoader with num_workers=0 and train your model.
I don’t know how large each image is, but assuming you are using images of the shape [3, 224, 224], a dataset of 25000 images will takes approx. 25000*3*224*224*4/1024**3 = 14GB of GPU memory.
So you should consider, if you want to spare that much memory for the data alone.