이제 테스트 데이터셋을 이용하여 모델 예측 성능을 살펴보겠습니다.

    코드 7-38 테스트 데이터셋을 이용한 모델 예측 성능 확인

    def evaluate(model, val_iter):
        corrects, total, total_loss = 0, 0, 0
        model.eval()
        for images, labels in val_iter:
            if torch.cuda.is_available(): ------ GPU 사용 유무 확인
                images = Variable(images.view(-1, seq_dim, input_dim).cuda())
            else:
                images = Variable(images.view(-1, seq_dim, input_dim)).to(device)
    
            logit = model(images).to(device)
            loss = F.cross_entropy(logit, labels, reduction="sum") ------ reduction=‘sum’을 지정했기 때문에 모든 오차를 더합니다.
            _, predicted = torch.max(logit.data, 1) ------ logit.data 텐서에서 최댓값의 인덱스(index)를 반환
            total += labels.size(0)
            total_loss += loss.item()
            corrects += (predicted == labels).sum()
    
        avg_loss = total_loss / len(val_iter.dataset)
        avg_accuracy = corrects / total
        return avg_loss, avg_accuracy
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.