더북(TheBook)

① 생성자에서 새로운 이미지 데이터(텐서)를 생성하기 위해서는 노이즈 데이터가 필요합니다. 노이즈 데이터는 torch.randn()을 이용해서 생성할 수 있으며, 여기에서 사용되는 파라미터는 다음과 같습니다. d

ⓐ 생성자에서 가짜 이미지를 생성하기 위해서는 생성자에 노이즈 데이터(벡터)를 제공해야 합니다. 노이즈 데이터는 잠재 벡터(nz)의 크기와 동일해야 하며, 평균이 0이고 표준편차가 1인 가우시안 정규분포를 이용하여 (b_size×nz) 크기를 갖도록 합니다.

ⓑ 모델이 데이터를 처리하려면 모델과 데이터 모두 동일한 장치(CPU 혹은 GPU)를 사용해야 합니다. 여기에서는 to(device)를 이용하여 모델이 사용할 장치를 지정합니다.

detach()Ctrl+X와 같은 기능을 합니다. 즉, detach()를 통해 떼어 낸 데이터를 이용하여 ①′처럼 판별자를 학습시키고 그 결과를 loss_d에 붙여 넣습니다(Ctrl+V).

다음은 모델을 학습시킨 결과입니다.

Epoch 0 of 200
Generator loss: 1.28965569, Discriminator loss: 0.94043517
Epoch 1 of 200
Generator loss: 2.55902362, Discriminator loss: 1.09625375
Epoch 2 of 200
Generator loss: 6.74595404, Discriminator loss: 0.20054729
Epoch 3 of 200
Generator loss: 1.58426058, Discriminator loss: 1.02565455
Epoch 4 of 200
Generator loss: 2.40962863, Discriminator loss: 1.11043680
Epoch 5 of 200
Generator loss: 4.19420624, Discriminator loss: 0.73168665
... 중간 생략 ...
Epoch 194 of 200
Generator loss: 1.26986551, Discriminator loss: 1.09756744
Epoch 195 of 200
Generator loss: 1.28353238, Discriminator loss: 1.06755567
Epoch 196 of 200
Generator loss: 1.26950192, Discriminator loss: 1.08437514
Epoch 197 of 200
Generator loss: 1.23257947, Discriminator loss: 1.10518491
Epoch 198 of 200
Generator loss: 1.28899515, Discriminator loss: 1.08550680
Epoch 199 of 200
Generator loss: 1.31970513, Discriminator loss: 1.07432187
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.