또한, 생성자의 활성화 함수로는 ReLU() 함수를 쓰고 판별자로 넘겨주기 직전에는 tanh() 함수를 쓰고 있습니다. tanh() 함수를 쓰면 출력되는 값을 -1~1 사이로 맞출 수 있습니다. 판별자에 입력될 MNIST 손글씨의 픽셀 범위도 -1~1로 맞추면 판별 조건이 모두 갖추어집니다.
지금까지 설명한 내용을 코드로 정리하면 다음과 같습니다.
# 모델 이름을 generator로 정하고 Sequential() 함수를 호출 .add(Dense(128*7*7, =100, =LeakyReLU(0.2))) ----- ➊ .add(BatchNormalization() ----- ➋ .add(Reshape((7, 7, 128))) ----- ➌ .add(UpSampling2D()) ----- ➍ .add(Conv2D(64, =5, ='same')) ----- ➎ .add(BatchNormalization()) ----- ➏ .add(Activation(LeakyReLU(0.2))) ----- ➐ .add(UpSampling2D()) ----- ➑ .add(Conv2D(1, =5, ='same', ='tanh')) ----- ➒= Sequential()
먼저 ➊부터 차례로 확인해 보겠습니다.
128*7*7, =100, =LeakyReLU(0.2))) ----- ➊.add(Dense(