더북(TheBook)

noise = np.random.normal(0,1, [batch_size, 100])

생성자에게 줄 노이즈값을 만듭니다. 이때 균일한 값을 생성할 수 있도록 넘파이의 랜덤값 생성 라이브러리 중 정규 분포 함수를 사용합니다. np.random.normal(0,1, [batch_size, 100]) 첫 번째 0의 의미는 평균이 0이라는 의미입니다. 두 번째 1의 의미는 평균에서 1만큼씩 떨어져 있는 값(즉, -1 ~ 1 사이 값)을 생성하라는 의미입니다. 세 번째 [batch_size, 100]batch_size 개수만큼 생성하며, 생성한 데이터는 각각 숫자 100개씩으로 구성되어 있다는 의미입니다.

그림 18-6 | 각 100개씩 구성된 데이터를 배치 사이즈만큼 생성

generated_images = g.predict(noise)

g.predict(noise) 이 부분은 생성자 모델에 노이즈를 입력하여 생성자 신경망이 그림을 그린 뒤 그림의 결과를 generated_images에 저장합니다.

image_batch = mnist_data[np.random.randint(low=0, high=mnist_data.shape[0], size=batch_size)]

실제 mnist 데이터셋(10,000개)에서 128개만 랜덤으로 뽑는 코드입니다. 학습할 때마다 다양한 모양의 손글씨를 인공지능이 학습하게끔 하기 위해서입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.