줘이리의 인생적기

[tensorflow 02] 난수 생성 본문

공부/tensorflow

[tensorflow 02] 난수 생성

줘이리 2021. 4. 2. 22:00
728x90

신경망은 많은 숫자로 구성된 행렬이다.

이 행렬에 입력을 넣으면 출력을 얻게 되는데 잘 작동할 경우 원하는 출력에 점점 가까워진다.


랜덤은 신경망에 꼭 필요한 기능이다.


처음 입력은 랜덤 한 값으로 지정해주는 초기화(Initialization)를 해야 하며, 어느 정도 규칙이 있는 범위 내에서 난수를 지정한다.

 


import tensorflow as tf

rand = tf.random.uniform([1], 0, 1)

print(rand)

결과

 

tf.random.uniform([1], 0, 1)에서 uniform은 균일 분포(uniform distribution)의 난수를 얻는다는 뜻이다.

 

tf.random.uniform([1], 0, 1)에서 [1]은 결괏값의 Shape(행, 열 등 차원의 수)를 뜻한다.

 

tf.random.uniform([1], 0, 1)에서 0, 1은 최솟값과, 최댓값을 뜻한다.

 

 

즉, 0 ~ 1사이에서 모든 수가 나올 확률이 동일한 분포에서 난수 하나를 뽑는다 라는 뜻이다.


import tensorflow as tf

rand = tf.random.normal([5], 0, 1)

print(rand)

결과

 

tf.random.normal([5], 0, 1)에서 normal은 정규 분포(normal distribution)의 난수를 얻는다는 뜻이다.

 

tf.random.normal([5], 0, 1)에서 [5] 결괏값의 Shape(행, 열 등 차원의 수)를 뜻한다.

 

tf.random.normal([5], 0, 1)에서 0은 정규 분포의 평균, 1은 정규 분포의 표준편차를 뜻한다.

 

 


균등 분포와 정규 분포 참고 이미지

https://thatascience.com/learn-numpy/normal-vs-uniform/