mini batching added with shuffle after each epoch