Propoper seed fixing
It would be great to have a seed fixing mechanism for every source of randomness, model weights initialization and mini-batch generation. Currently, it is doable separately by instantiating instances of Model and Dataset classes. A fix to this is to create an experiment class that takes one seed and get the model and dataset instances with the given seed.