[Tensorflow] Random_seed에 대해서

SeungHyun·2024년 5월 1일

DL

목록 보기
3/5
post-thumbnail

1. 개요

  • Tensorflow에서의 Random seed에 대해 알아본다.
    • global random seed
    • operation level random seed
    • jupyter에서의 random seed


2. global random seed

  • tf.random.set_seed()
  • tf.keras.utils.set_seed()

프레임 워크 전반에 걸쳐 초기 난수 생성을 제어함.



3. operation-level random seed

  • tf.random.uniform([1], seed=seed_value)
  • LSTM(lstm_node, return_sequences=True, seed=seed_value)
  • Dropout(drop_out_rate, seed=seed_value)

지정된 연산에만 난수 생성을 제어함.



4. jyputer에서의 random seed

4-A. global random seed

  • global random seed를 설정할 경우 같은 패턴의 난수 생성
    Cell을 실행할때마다 같은 수치가 나오는게 아닌 같은 패턴으로 나옴.

  • 주의할 점은 jupyter에서 Cell을 두번 실행하는건 Cell 내 메소드를 두번 호출한것과 같아서 Cell을 여러번 실행할 경우 매번 수치가 다르게 나올 수 있음.

  • 매번 Cell 실행마다 같은 수치가 나오길 원한다면 위처럼 Cell 안에 random seed를 선언해주어야 함.

4-B. operation-level random seed

  • 해당 사진은 2번째 Cell을 두번 실행한 이후 jupyter Restart를 한 뒤 3번째 Cell을 실행함.
    • 눈여겨 볼 부분은 두번째 호출값이 동일한 것
  • operation-level random seed 역시 마찬가지로 Cell을 실행할때마다 매번 같은 수치가 나오는것이 아닌 일정 패턴에 따라 출력됨.


결론

G-seedO-seeddescription
OX프레임 워크 전반적으로 초기 난수 패턴이 설정됨
XOOperation-level-seed값이 설정된 메소드 한에서 초기 난수 패턴이 설정됨.
OO프레임 워크 전반적으로 초기 난수 패턴이 설정되며
O-seed를 설정한 메소드 한해서는 G-seed가 적용된 메소드와 다른 난수 패턴이 설정됨.


ref

profile
어디로 가야하오

0개의 댓글