Getting low GPU util with High GPU memory - How to correctly use DataLoader?

Since your dataset is tiny, I don’t think that multiple workers will help you much.
It seems you are just slicing the tensors currently without any transformations.
You could try to load all data, push it to the GPU beforehand and just slice the batch manually in your training loop. Maybe this will speedup your model a bit.
However, your data and model might be just too small to get a high GPU utilization.

As a small side note: you shouldn’t call the forward method of your model, but the model instance itself (estimator(x)), which will make sure to properly register all hooks etc.