6. 아무거나
랜덤 시드 조정
Honestree
2022. 10. 20. 16:36
요약
딥러닝 논문을 읽다보면 해당 모델을 사용하기 위해서 논문의 result 를 재현해야하는 경우가 많다. 하지만 많은 연구에서 연구의 모든 과정을 공개하지는 않기 때문에 재현에 어려움이 많고, 코드를 그대로 제공받더라도 랜덤성에 의해 결과가 달라지기도 한다. 그래서 실험에 모든 조건(랜덤 시드)을 제공하는 논문도 많지만, 코드의 어느 부분에서 랜덤 시드를 조정하느냐에 따라서도 결과가 달라진다. 해당 포스트는 python 에서 조정이 가능한 모든 랜덤시드를 요약했다.
torch.manual_seed(random_seed)
torch.cuda.manual_seed(random_seed)
torch.cuda.manual_seed_all(random_seed) # if use multi-GPU
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = False
np.random.seed(random_seed)
random.seed(random_seed)
1. Pytorch 랜덤 시드
import torch
torch.manual_seed(random_seed)
torch.cuda.manual_seed(random_seed)
torch.cuda.manual_seed_all(random_seed) # if use multi-GPU
2. CuDNN
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = False
3. Numpy
import numpy as np
np.random.seed(random_seed)
4. Random
import random
random.seed(random_seed)