모델 성능 평가

PyTorch로 배우는 딥러닝 입문

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

학습, 검증, 테스트

$$

  • 데이터셋은 보통 세 부분으로 나눕니다:
데이터 비율 역할
학습(Training) 80-90% 모델 파라미터 학습
검증(Validation) 10-20% 하이퍼파라미터 튜닝
테스트(Test) 5-10% 최종 성능 평가

$$

  • 학습·검증 중 손실정확도를 추적합니다
PyTorch로 배우는 딥러닝 입문

학습 손실 계산

$$

각 에포크에서:

  • dataloader의 모든 배치 손실을 합산
  • 에포크 끝에 평균 학습 손실 계산
training_loss = 0.0

for inputs, labels in trainloader: # 순전파 outputs = model(inputs) # 손실 계산 loss = criterion(outputs, labels)
# 역전파 loss.backward() # 그래디언트 계산 optimizer.step() # 가중치 업데이트 optimizer.zero_grad() # 그래디언트 초기화
# 손실 합산 training_loss += loss.item()
epoch_loss = training_loss / len(trainloader)
PyTorch로 배우는 딥러닝 입문

검증 손실 계산

validation_loss = 0.0
model.eval() # 평가 모드로 전환


with torch.no_grad(): # 효율을 위해 그래디언트 비활성화
for inputs, labels in validationloader: # 순전파 outputs = model(inputs) # 손실 계산 loss = criterion(outputs, labels) validation_loss += loss.item() epoch_loss = validation_loss / len(validationloader) # 평균 손실 계산
model.train() # 학습 모드로 복귀
PyTorch로 배우는 딥러닝 입문

과적합

과적합 예시

PyTorch로 배우는 딥러닝 입문

torchmetrics로 정확도 계산

import torchmetrics


# 정확도 지표 생성 metric = torchmetrics.Accuracy(task="multiclass", num_classes=3)
for features, labels in dataloader: outputs = model(features) # 순전파 # 배치 정확도 계산(one-hot 레이블에 argmax 유지) metric.update(outputs, labels.argmax(dim=-1))
# 에포크 전체 정확도 계산 accuracy = metric.compute()
# 다음 에포크를 위해 초기화 metric.reset()
PyTorch로 배우는 딥러닝 입문

연습해 봅시다!

PyTorch로 배우는 딥러닝 입문

Preparing Video For Download...