8 적대적 생성 신경망 훈련시키기

    지금부터 살펴볼 코드는 적대적 생성 신경망을 생성하는 과정의 마지막이자, 바로 이 장의 핵심입니다. 바로 적대적 생성 신경망을 학습시키는 과정입니다. 이 과정이 조금은 어려울 수도 있지만 차근차근 따라온다면 충분히 이해할 수 있을 것입니다.

    batch_size = 128
    epochs = 5000
    for e in tqdm(range(epochs)):
        noise = np.random.normal(0,1, [batch_size, 100])
        generated_images = g.predict(noise)
        image_batch = mnist_data[np.random.randint(low=0,
                      high=mnist_data.shape[0],size=batch_size)]
        X = np.concatenate([image_batch, generated_images])
        y_dis = np.zeros(2*batch_size)
        y_dis[:batch_size] = 1
        d.trainable = True
        d.train_on_batch(X, y_dis)
        noise = np.random.normal(0,1, [batch_size, 100])
        y_gen = np.ones(batch_size)
        d.trainable = False
        gan.train_on_batch(noise, y_gen)
        if e = = 0 or e % 1000 = = 0:
           plot_generated_images(g)

    실행 결과

    6%|        | 299/5000 [00:26<04:37, 16.94it/s]
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.