PyTorch에서 Random seed 고정하는 방법입니다.
저도 까먹고 있다가 맨날 찾고 싶은데 찾기 귀찮아서 공유해둡니다.
여러가지 방법이 있겠지만, 모르겠다 싶을 때는 랜덤적인 요소들은 모두 찾아서 고정해버리는게 방법이죠.
import os
import random
import numpy as np
import torch
def set_random_seed(seed=42):
os.environ["PYTHONHASHSEED"] = str(seed)
random.seed(seed)
np.random.seed(seed)
torch.manual_seed(seed)
torch.cuda.manual_seed(seed)
torch.cuda.manual_seed_all(seed)
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = False
torch.backends.cudnn.enabled = False
seed = 42 # any number
set_random_seed(seed=seed)
※ Jupyter Notebook 에서 Cell 단위로 실행해줘야하는 걸로 알고 있습니다. 최상단에 한번만 실행해두는걸로는 적용이 안되는걸로 알고 있습니다.
728x90
반응형
'딥러닝' 카테고리의 다른 글
[PyTorch] 간단한 Hooking 사용법 (0) | 2023.07.28 |
---|---|
[PyTorch] 단 한줄로 PyTorch와 관련된 정보 확인하기 (0) | 2021.10.04 |