Well, if you have a small enough dataset and large enough amounts of RAM, you can write your own dataset class which loads your data in RAM. That way you only read the data from the hard drive(s) once at the beginning. That is what I did in one of my project and it worked great.