내 프로그램에서 큰 데이터 세트를 샘플링하는 데 사용되는 자체 RNG로 N 개의 개별 스레드를 각각 실행해야합니다. 결과를 재현 할 수 있도록이 전체 프로세스를 단일 값으로 시드 할 수 있어야합니다.
각 인덱스의 시드를 순차적으로 늘리는 것으로 충분합니까?
현재 내가 사용 numpy
의 RandomState
메르 센 트위스터 의사 난수 생성기를 사용합니다.
아래 코드 스 니펫 :
# If a random number generator seed exists
if self.random_generator_seed:
# Create a new random number generator for this instance based on its
# own index
self.random_generator_seed += instance_index
self.random_number_generator = RandomState(self.random_generator_seed)
본질적으로 사용자 입력 시드 (존재하는 경우)로 시작하고 각 인스턴스 / 스레드에 대해 실행중인 인스턴스의 인덱스 (0 ~ N-1)를 순차적으로 추가합니다. 이것이 좋은 습관인지 또는 더 좋은 방법이 있는지 모르겠습니다.