Notice
Recent Posts
Recent Comments
Link
관리 메뉴

뛰는 놈 위에 나는 공대생

[PyTorch] 인공지능 재현성을 위한 설정과 주의할 점 본문

연구 Research/인공지능 Artificial Intelligent

[PyTorch] 인공지능 재현성을 위한 설정과 주의할 점

보통의공대생 2023. 8. 11. 13:14

 

 

다음 글에서 재현성을 위해 설정해야하는 것들은 다음과 같다.

 

import random
random_seed = 1
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)

 

 

이것까지는 좋은데 주의해야할 점이 있다.

 

예를 들어 내가 어떤 random integer를 뽑는 상황이 온다고 하자.

그러면 seed를 정해놓고 뽑기 때문에 항상 같은 결과가 나올 것이라 생각할 수 있지만

하나의 코드 안에서 여러 번 random으로 뽑으면 개별 결과는 달라진다.

 

 

a = np.random.randn(1)
b = np.random.randn(1)

# a ~= b

 

따라서 jupyter notebook과 같이 코드를 새로 컴파일하는 것이 아니라 지속적으로 인터프리터처럼 사용하는 경우에는 seed를 고정해놔도 위의 코드를 계속 반복해서 실행을 시키면 a,b 값이 seed가 정해놓은 순서에 따라 생성되므로 재현성에 문제가 생길 수 있다.

 

 

Comments