더북(TheBook)

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
_________________________________________________________________
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.