////
Search
Duplicate
💡

pytorch 랜덤 시드 왜 고정해야 할까?

생성자
분류
인공지능
생성일
2023/02/16 14:02

랜덤 시드 고정 대체 왜?

기계학습을 진행하다보면 항상 랜덤시드를 고정하는 것을 볼 수 있다. 왜 랜덤 시드를 고정하는 것일까?
랜던시드를 고정하면, 어떠한 환경에서도 동일한 결과를 얻을 수 있기 때문이다!
torch.manual_seed()함수는 난수 발생 순서와 값을 동일하게 보장해준다. 그래서 재현성 있는 모델 및 실험을 할 수 있다. 매번 학습을 시킬 때마다, 학습 데이터 이외에 시드 값에 의해 오차가 발생한다면 결과 분석에 어려움을 겪을 수 있다.
아래 코드를 통해 실제로 manual_seed() 함수가 원하는 출력을 내는지 살펴보자. 랜덤시드가 고정되어 있지 않다면 결과 성능의 차이가 6%까지 날 수 있다고 한다!
print('*' * 10, 'seed : 3 ,'*' * 10) torch.manual_seed(3) for i in range(1,3): print(torch.rand(1)) print('*' * 10, 'seed : 5 ,'*' * 10) torch.manual_seed(5) for i in range(1,3): print(torch.rand(1)) print('*' * 10, 'seed : 3 ,'*' * 10) torch.manual_seed(3) for i in range(1,3): print(torch.rand(1))
Python
복사

Reference