딥러닝

[PyTorch] Random seed 고정하기

성민석 2024. 3. 7. 13:34

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
반응형