Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

잡동사니 블로그

[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

https://www.microsoft.com/en-us/research/uploads/prod/2017/12/40250.jpg

 

위 이미지가 너무 잘 설명되어있어서...

Multi-class -> 여러개의 label중 하나 

Multi-label -> 여러개의 label중 여러개

 

신기하게도 tensorflow와 다르게 output에 따로 function을 안취하고 loss function내에 자체적으로 계산되는 형식.

심지어 공식문서에서도 강조되어 있음.

 

CrossEntropyLoss


BCEWithLogitsLoss

 

 

# 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())