더북(TheBook)

gan_train() 함수를 사용해 학습이 진행되도록 하겠습니다. 이때 변수는 epoch, batch_size 그리고 중간 과정을 저장할 때 몇 번마다 한 번씩 저장할지 정하는 saving_interval 이렇게 세 가지로 정합니다. 판별자에서 사용할 MNIST 손글씨 데이터도 불러 줍니다. 앞서 생성자 편에서 tanh() 함수를 사용한 이유는 지금 불러올 이 데이터의 픽셀 값을 -1~1 사이의 값으로 지정하기 위해서였습니다. 0~255의 값으로 되어 있는 픽셀 값을 -1~1 사이의 값으로 바꾸려면 현재의 픽셀 값에서 127.5를 뺀 후 127.5로 나누면 됩니다.

# 실행 함수를 선언합니다.
def gan_train(epoch, batch_size, saving_interval): # 세 가지 변수 지정

# MNIST 데이터 불러오기
    # MNIST 데이터를 다시 불러와 이용합니다. 단, 테스트 과정은 필요 없고
    # 이미지만 사용할 것이기 때문에 X_train만 호출합니다.
    (X_train, _), (_, _) = mnist.load_data()

    # 가로 28픽셀, 세로 28픽셀이고 흑백이므로 1을 설정합니다.
    X_train = X_train.reshape(X_train.shape[0], 28, 28, 1).astype('float32')

    # 0~255 사이 픽셀 값에서 127.5를 뺀 후 127.5로 나누면 -1~1 사이 값으로 바뀝니다.
    X_train = (X_train - 127.5) / 127.5
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.