더북(TheBook)

이제 모델의 네트워크에서 사용할 옵티마이저와 손실 함수를 정의합니다. 중요한 것은 생성자와 판별자에서 사용할 옵티마이저를 따로 정의해야 한다는 것입니다.

코드 13-28 옵티마이저와 손실 함수 정의

optim_g = optim.Adam(generator.parameters(), lr=0.0002)
optim_d = optim.Adam(discriminator.parameters(), lr=0.0002)

criterion = nn.BCELoss()

losses_g = [] ------ 매 에포크마다 발생하는 생성자 오차를 저장하기 위한 리스트형 변수
losses_d = [] ------ 매 에포크마다 발생하는 판별자 오차를 저장하기 위한 리스트형 변수
images = [] ------ 생성자에 의해 생성되는 이미지를 저장하기 위한 리스트형 변수

생성자에 의해 만들어지는 새로운 이미지(텐서)를 저장하기 위한 함수를 저장합니다. 이 함수는 모델 학습에 반드시 필요한 것은 아니지만 이미지가 생성되는 과정을 이해할 수 있도록 시각화하여 보여 줍니다.

코드 13-29 생성된 이미지 저장 함수 정의

def save_generator_image(image, path):
    save_image(image, path)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.