6 GAN 생성 함수 만들기
앞에서 생성자 신경망과 판별자 신경망을 만들었습니다. 이제 적대적 생성 신경망(GAN)을 만들 준비가 끝났습니다. 지금부터 생성자 신경망과 판별자 신경망을 적절하게 학습시켜 보겠습니다.
def create_gan(discriminator, generator): discriminator.trainable=False gan_input = Input(shape=(100,)) x = generator(gan_input) gan_output = discriminator(x) gan = Model(inputs=gan_input, outputs=gan_output) gan.compile(loss='binary_crossentropy', optimizer='adam') return gan gan = create_gan(d,g) gan.summary()
실행 결과
Model: "functional_1" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= input_1 (InputLayer) (None, 100) 0 _________________________________________________________________ sequential_1 (Sequential) (None, 784) 559632 _________________________________________________________________ sequential_2 (Sequential) (None, 1) 533505 ================================================================= Total params: 1,093,137 Trainable params: 559,632 Non-trainable params: 533,505 _________________________________________________________________