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]