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

2023. 8. 11. 13:14·연구 Research/인공지능 Artificial Intelligent

 

 

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

 

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가 정해놓은 순서에 따라 생성되므로 재현성에 문제가 생길 수 있다.

 

 

저작자표시 비영리 변경금지 (새창열림)

'연구 Research > 인공지능 Artificial Intelligent' 카테고리의 다른 글

[인공지능] 인공지능 라이브러리 정리  (0) 2023.08.24
[JAX] JAX에서 gradient 추척을 멈추는 방법  (0) 2023.08.22
Neural networks의 convergence, convexity에 대한 논문  (0) 2023.07.31
[JAX] JAX 기반 Neural ODE 라이브러리 : diffrax  (0) 2023.07.28
[JAX] 학습한 모델 저장 및 로드  (0) 2023.06.19
'연구 Research/인공지능 Artificial Intelligent' 카테고리의 다른 글
  • [인공지능] 인공지능 라이브러리 정리
  • [JAX] JAX에서 gradient 추척을 멈추는 방법
  • Neural networks의 convergence, convexity에 대한 논문
  • [JAX] JAX 기반 Neural ODE 라이브러리 : diffrax
보통의공대생
보통의공대생
수학,프로그래밍,기계항공우주 등 공부하는 기록들을 남깁니다.
  • 보통의공대생
    뛰는 놈 위에 나는 공대생
    보통의공대생
  • 전체
    오늘
    어제
    • 분류 전체보기 (460)
      • 공지 (1)
      • 영어 공부 English Study (40)
        • 텝스 TEPS (7)
        • 글 Article (21)
        • 영상 Video (10)
      • 연구 Research (99)
        • 최적화 Optimization (3)
        • 데이터과학 Data Science (7)
        • 인공지능 Artificial Intelligent (40)
        • 제어 Control (45)
      • 프로그래밍 Programming (103)
        • 매트랩 MATLAB (25)
        • 파이썬 Python (33)
        • 줄리아 Julia (2)
        • C++ (3)
        • 리눅스 우분투 Ubuntu (6)
      • 항공우주 Aeronautical engineeri.. (21)
        • 항법 Navigation (0)
        • 유도 Guidance (0)
      • 기계공학 Mechanical engineering (13)
        • 열역학 Thermodynamics (0)
        • 고체역학 Statics & Solid mechan.. (10)
        • 동역학 Dynamics (1)
        • 유체역학 Fluid Dynamics (0)
      • 수학 Mathematics (34)
        • 선형대수학 Linear Algebra (18)
        • 미분방정식 Differential Equation (3)
        • 확률및통계 Probability & Sta.. (2)
        • 미적분학 Calculus (1)
        • 복소해석학 Complex Analysis (5)
        • 실해석학 Real Analysis (0)
      • 수치해석 Numerical Analysis (21)
      • 확률 및 랜덤프로세스 Random process (2)
      • 추론 & 추정 이론 Estimation (3)
      • 기타 (26)
        • 설계 프로젝트 System Design (8)
        • 논문작성 Writing (55)
        • 세미나 Seminar (2)
        • 생산성 Productivity (3)
      • 유학 생활 Daily (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    IEEE
    생산성
    서버
    텝스
    수치해석
    matplotlib
    obsidian
    에러기록
    Dear abby
    논문작성
    논문작성법
    WOX
    Linear algebra
    인공지능
    pytorch
    MATLAB
    teps
    Statics
    Python
    Julia
    우분투
    ChatGPT
    텝스공부
    Zotero
    고체역학
    LaTeX
    딥러닝
    Numerical Analysis
    옵시디언
    JAX
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
보통의공대생
[PyTorch] 인공지능 재현성을 위한 설정과 주의할 점
상단으로

티스토리툴바