Как установить глобальное случайное семя в Python - PullRequest
0 голосов
/ 25 апреля 2019

Как и в R, я хотел бы установить случайное начальное число глобально для всего сценария / сеанса вместо необходимости вызывать функцию случайного начального числа каждый раз, когда я выполняю функцию или запускаю модель.Я знаю, что Sci-Kit Learn использует Numy RNG, но также не смог найти способ установить его глобально.

Я прочитал несколько постов на эту тему, например, такой: Различиямежду numpy.random и random.random в Python

Это объясняет разницу между двумя классами RNG, но не объясняет, как установить его глобально.

Нет ли способа сделать этокроме вызова случайного начального числа КАЖДЫЙ раз, когда я хочу, чтобы вывод был одинаковым?

## Random Library

import random
##### Random seed given
random.seed(42)
print(random.random()) #will generate a random number 

##### No seed given
print(random.random()) #will generate a random number 

##### Random seed given
random.seed(42)
print(random.random()) #will generate a random number 


#############################

## Numpy Library

import numpy as np

##### Random seed given
np.random.seed(42)
print(np.random.random())

##### No seed given
print(np.random.random())

##### Same seed given
np.random.seed(42)
print(np.random.random())

1 Ответ

0 голосов
/ 25 апреля 2019

Ваш вопрос выглядит вопреки всей идее генератора случайных чисел (действителен в случае получения детерминированных результатов). Как правило, вы хотите заполнить свой генератор случайных чисел некоторым значением, которое будет изменять каждое выполнение (или другим числом, например, устанавливать некоторыеcookie нет для сеанса) программы.Например, текущее время является часто используемым семенем.Причина, по которой это не происходит автоматически, заключается в том, что при желании вы можете указать конкретное начальное число для получения детерминированной последовательности.

Возвращаясь к вашему вопросу, если вы хотите получить глобальное начальное число и хотитегенерировать случайные с этим семенем.Тогда у вас может быть функция для объединения обеих вещей и вызова в любое время.

def same_seed_random()
     np.random.seed(42)
     print(np.random.random())

Я бы посоветовал вам проверить это для получения дополнительной информации о случайном семени @ https://pynative.com/python-random-seed/

...