PyTorch 손실 함수 — nn 계열 손실 모음
PyTorch 손실 함수 — nn 계열 손실 모음
torch.nn 은 분류·회귀·거리 학습 등에 쓰이는 손실 함수 클래스를 모아 제공해요.
자주 쓰는 손실
CrossEntropyLoss: 다중 클래스 분류의 표준. 로그-소프트맥스 + NLL 결합.MSELoss: 회귀에 쓰는 평균 제곱 오차.BCEWithLogitsLoss: 이진 분류용. 로짓을 그대로 받아 수치 안정적.L1Loss/SmoothL1Loss: MAE와 그 변형(회귀, 객체 검출에 자주 사용).TripletMarginLoss: 임베딩 거리 학습용.
import torch, torch.nn as nn
loss_fn = nn.CrossEntropyLoss()
logits = model(x) # (N, C)
loss = loss_fn(logits, y) # y: (N,) 정수 레이블
사용 팁
- 분류 문제는 로짓을 그대로 넣고 내부에서 소프트맥스·로그를 처리하는 손실을 쓰면 수치 안정적이에요.
- 손실을
loss.backward()로 역전파해 옵티마이저로 갱신해요.