더북(TheBook)

생성자 네트워크가 완료되었고, 이제 판별자 네트워크를 생성해 보겠습니다. 판별자는 이진 분류자라는 것을 고려하여 신경망을 구축해야 합니다.

코드 13-26 판별자 네트워크 생성

class Discriminator(nn.Module):
    def __init__(self):
        super(Discriminator, self).__init__()
        self.n_input = 784 ------ 판별자의 입력 크기
        self.main = nn.Sequential( ------ 판별자 역시 선형 계층과 리키렐루 활성화 함수로 구성
            nn.Linear(self.n_input, 1024),
            nn.LeakyReLU(0.2),
            nn.Dropout(0.3),
            nn.Linear(1024, 512),
            nn.LeakyReLU(0.2),
            nn.Dropout(0.3),
            nn.Linear(512, 256),
            nn.LeakyReLU(0.2),
            nn.Dropout(0.3),
            nn.Linear(256, 1),
            nn.Sigmoid(),
        )
    def forward(self, x):
        x = x.view(-1, 784)
        return self.main(x) ------ 이미지가 진짜인지 가짜인지를 분류하는 값을 반환
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.