您可以将全局随机状态保留在一个临时变量中,并在完成函数后将其重置:
import contextlibimport numpy as np@contextlib.contextmanagerdef temp_seed(seed): state = np.random.get_state() np.random.seed(seed) try: yield finally: np.random.set_state(state)
演示:
>>> np.random.seed(0)>>> np.random.randn(3)array([1.76405235, 0.40015721, 0.97873798])>>> np.random.randn(3)array([ 2.2408932 , 1.86755799, -0.97727788])>>> np.random.seed(0)>>> np.random.randn(3)array([1.76405235, 0.40015721, 0.97873798])>>> with temp_seed(5):... np.random.randn(3)array([ 0.44122749, -0.33087015, 2.43077119])>>> np.random.randn(3)array([ 2.2408932 , 1.86755799, -0.97727788])
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)