더북(TheBook)

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