[Pytorch] torch.manual_seed()
Machine Learning

[Pytorch] torch.manual_seed()

random seed 란 ?

numpy 에서도 사용했던 random seed 

5개의 난수를 생성 한다고 하면 우리는 np.random.rand(5)로 난수를 생성한다.

연달아서 np.random.rand(5)를 실행한다면 아래처럼, 생성할때마다 매번 서로 다른 5개의 숫자를 생성할 것이다.

random seed를 고정한다는 말은 동일한 셋트의 난수를 생성할 수 있게 하는 것이다.

seed() 괄호 안에 들어가는 숫자는 무슨 의미일까?

seed value 숫자 자체는 중요하지 않고 서로 다른 시드를 사용하면 서로 다른 난수를 생성한다는 점만 알면 된다.

pytorch random seed

deep learning에서 random num을 사용하는 경우가 많다. (초기화를 할 때 주로 씀)

random num을 많이 사용한다는 것은 다른말로 실험을 할 때마다 다른 값들의 연산으로 결과값이 달라질 수 있다는 의미이다.

그렇기 때문에 실험을 동일하게 진행하기 위해서는 동일한 난수의 사용이 필요하다.

pytorch에서는 random seed를 고정하기 위한 함수로 manual_seed를 제공한다.

반환값으로는 generator를 반환한다

참고 ( pytorch random관련 함수)

torch.rand() : 0과 1 사이의 숫자를 균등하게 생성

torch.randn() : 평균이 0이고 표준편차가 1인 가우시안 정규분포를 이용해 생성

 torch.randint() : 주어진 범위 내의 정수를 균등하게 생성, 자료형은 torch.float32

torch.randperm() : 주어진 범위 내의 정수를 랜덤하게 생성