Low GPU utilization possibly limited by data loading?

I am pretty new to PyTorch and sorry if this question is too naive. My training data is saved in .npy format in the following way:
– root directory:
---- class 1:
-------- *npy
---- class 2:
-------- *npy

So I used torchvision.datasets.DatasetFolder to load my training data. When I implement the training, the average GPU utilization is only ~30%. I suspect it is limited by data loading. Is there any way to verify this? And also, what would be the best practice to load data efficently?