Hmm you can create a big numpy array with all the images stacked together and then just read those images/fragments that you need. You save the required time to instantiate the array and so.
Another option you have is going for uint8 (would be reading half of the data)
Apart of that there is not much you can do.
You may explore DALI library NVIDIA Developer Data Loading Library (DALI) 1
which has a dataloader faster than pytorch’s but it’s not as simple to use.