시작하기무료로 시작하기

멀티 출력 모델 훈련하기

여러 개의 출력을 갖는 모델을 훈련할 때는 손실 함수가 올바르게 정의되어 있는지 확인하는 것이 매우 중요해요.

이 경우 모델은 두 가지 출력을 생성해요: 알파벳에 대한 예측과 문자에 대한 예측이에요. 각각에 대해 정답 레이블이 있으며, 이를 사용해 두 개의 개별 손실을 계산할 수 있어요. 하나는 잘못된 알파벳 분류로 인한 손실, 다른 하나는 잘못된 문자 분류로 인한 손실이에요. 두 경우 모두 다중 클래스 분류 작업을 다루므로, 매번 Cross-Entropy 손실을 적용할 수 있어요.

하지만 경사 하강법은 한 번에 하나의 손실 함수만 최적화할 수 있어요. 따라서 총 손실을 알파벳 손실과 문자 손실의 합으로 정의할 거예요.

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

PyTorch로 배우는 Intermediate Deep Learning

강의 보기

연습 안내

  • 알파벳 분류 손실을 계산해 loss_alpha에 할당하세요.
  • 문자 분류 손실을 계산해 loss_char에 할당하세요.
  • 두 부분 손실의 합을 총 손실로 계산해 loss에 할당하세요.

실습형 인터랙티브 연습

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

net = Net()
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.05)

for epoch in range(1):
    for images, labels_alpha, labels_char in dataloader_train:
        optimizer.zero_grad()
        outputs_alpha, outputs_char = net(images)
        # Compute alphabet classification loss
        loss_alpha = ____
        # Compute character classification loss
        loss_char = ____
        # Compute total loss
        loss = ____
        loss.backward()
        optimizer.step()
코드 편집 및 실행