gan_train() 함수를 사용해 학습이 진행되도록 하겠습니다. 이때 변수는 epoch, batch_size 그리고 중간 과정을 저장할 때 몇 번마다 한 번씩 저장할지 정하는 saving_interval 이렇게 세 가지로 정합니다. 판별자에서 사용할 MNIST 손글씨 데이터도 불러 줍니다. 앞서 생성자 편에서 tanh() 함수를 사용한 이유는 지금 불러올 이 데이터의 픽셀 값을 -1~1 사이의 값으로 지정하기 위해서였습니다. 0~255의 값으로 되어 있는 픽셀 값을 -1~1 사이의 값으로 바꾸려면 현재의 픽셀 값에서 127.5를 뺀 후 127.5로 나누면 됩니다.
# 실행 함수를 선언합니다. gan_train( , , ): # 세 가지 변수 지정 # MNIST 데이터 불러오기 # MNIST 데이터를 다시 불러와 이용합니다. 단, 테스트 과정은 필요 없고 # 이미지만 사용할 것이기 때문에 X_train만 호출합니다. ( , ), ( , ) = mnist.load_data() # 가로 28픽셀, 세로 28픽셀이고 흑백이므로 1을 설정합니다. = .reshape( .shape[0], 28, 28, 1).astype('float32') # 0~255 사이 픽셀 값에서 127.5를 뺀 후 127.5로 나누면 -1~1 사이 값으로 바뀝니다. = ( - 127.5) / 127.5