These lines set a default (constant) seed for the rng when the data set is 'valid' or 'test', which, although we use the rng, makes it the same each time the iterator is created.

```
if self.which_set in ('valid', 'test') and rng is None:
    rng = np.random.RandomState(self._default_seed)
```

This may seem like a bit of a hack, but I thought it was the best / easiest way of guaranteeing that we get the same test/valid set each time. Going through the entire dataset in order would be another option, but that could be quite a large amount of data returned. If the slice_length is large, say, 10 frames, this would result in eventually returning ~10x the amount of data, which could take forever.

Thus, because this method is simple and I believe produces the intended effect, I vote for leaving it. Thoughts?