잡동사니 블로그
[Python] Multi-label & Multi-class classification에서의 loss function in pytorch 본문
Python
[Python] Multi-label & Multi-class classification에서의 loss function in pytorch
코딩부대찌개 2023. 12. 3. 23:57
위 이미지가 너무 잘 설명되어있어서...
Multi-class -> 여러개의 label중 하나
Multi-label -> 여러개의 label중 여러개
신기하게도 tensorflow와 다르게 output에 따로 function을 안취하고 loss function내에 자체적으로 계산되는 형식.
심지어 공식문서에서도 강조되어 있음.
# Multi-class
# CrossEntropyLoss 사용
output = torch.tensor([[1,0,0], [0,0,2]]) # 모델의 출력값
target = torch.tensor([0, 2]) # 실제 레이블
criterion = nn.CrossEntropyLoss()
#input float, output long
loss = criterion(output.float(), target)
print(loss.item())
# Multi-label
# BCEWithLogitsLoss 사용
output = torch.tensor([0.9, -1.0, 1.0]) # 모델의 출력값
target = torch.tensor([1, 0, 1]) # 실제 레이블
criterion = nn.BCEWithLogitsLoss()
#input float, output float
loss = criterion(output, target.float())
print(loss.item())
'Python' 카테고리의 다른 글
[Python] Tkinter와 pyinstaller를 이용해 엑셀 자동화 프로그램 간단 배포 (0) | 2024.04.09 |
---|---|
[Python] Class imbalance -> Class weight (0) | 2024.02.19 |
[Python] Multi-input model in pytorch (3) | 2023.11.27 |
[Python] 심심해서 만든 무신사 추천상품 크롤링 (1) | 2023.11.20 |
[Python] TabTransformer to use Tensorflow (0) | 2023.11.19 |