vendredi 30 août 2019

Why using numpy.random.seed is not a good practice?

I want to do reproducible tests that use random numbers as inputs. I am used to invoke rng in Matlab and numpy.random.seed in Python. However, I noticed that the Notes section of seed's help reads:

This is a convenience, legacy function.

The best practice is to not reseed a BitGenerator, rather to recreate a new one. This method is here for legacy reasons. This example demonstrates best practice.

from numpy.random import MT19937
from numpy.random import RandomState, SeedSequence
rs = RandomState(MT19937(SeedSequence(123456789)))  
# Later, you want to restart the stream
rs = RandomState(MT19937(SeedSequence(987654321)))

Does anyone know what are the caveats of using seed compared to the docstring suggestion?




Aucun commentaire:

Enregistrer un commentaire