시작하기무료로 시작하기

Discriminator

생성기가 정의되었으니, 다음 단계는 GAN의 Discriminator를 만드는 일이에요. Discriminator는 생성기의 출력을 입력으로 받아, 그 입력이 생성된 것인지 실제인지를 이진 분류로 예측해요.

torch.nn은 이미 nn으로 임포트되어 있어요. 또한, 선형 레이어에 이어서 LeakyReLU 활성화를 적용한 블록을 반환하는 커스텀 disc_block() 함수도 사용할 수 있어요. Discriminator를 구성하는 기본 블록으로 활용할 거예요.

def disc_block(in_dim, out_dim):
    return nn.Sequential(
        nn.Linear(in_dim, out_dim),
        nn.LeakyReLU(0.2)
    )

이 연습은 강의의 일부입니다

PyTorch로 배우는 이미지 딥러닝

강의 보기

연습 안내

  • 알맞은 입력 크기와 256의 출력을 갖도록 마지막 Discriminator 블록을 모델에 추가하세요.
  • 마지막 Discriminator 블록 뒤에, 출력을 크기 1로 매핑하는 선형 레이어를 추가하세요.
  • __init__()에서 정의한 순차 블록을 통해 입력 이미지를 전달하도록 forward() 메서드를 정의하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

class Discriminator(nn.Module):
    def __init__(self, im_dim):
        super(Discriminator, self).__init__()
        self.disc = nn.Sequential(
            disc_block(im_dim, 1024),
            disc_block(1024, 512),
            # Define last discriminator block
            ____,
            # Add a linear layer
            ____,
        )

    def forward(self, x):
        # Define the forward method
        ____
코드 편집 및 실행