728x90
반응형
torch.nn.CrossEntropyLoss() 를 사용해서 loss를 구하는 과정에서 만난 에러!
다름이 아니라 아무 생각 없이 accuracy를 구할 때처럼 argmax로 target을 넣어 loss를 구해서 난 에러였다!
crossentropy의 계산 공식을 생각해보면 말도 안된다는 걸 알 수 있다.
당연히 각 타겟 별로의 confidence 값이 있어야 crossentropy를 구할 수 있는 것인데!
따라서 CrossEntropyLoss를 구할 때에는 argmax로 예측한 target을 넣기 전 confidence 값을 그대로 넣어주어야 한다.
728x90
반응형
'Programming > PyTorch' 카테고리의 다른 글
[PyTorch] 모델 내 일부 레이어 freeze 하기 (0) | 2022.03.02 |
---|---|
[PyTorch] Tensor와 tensor (0) | 2022.01.27 |
[PyTorch] DataLoader의 역할 및 사용법 (0) | 2022.01.25 |
[PyTorch] Dataset Types 정리 (Map-style datasets, Iterable-style datasets) (0) | 2022.01.25 |
[PyTorch] torch.nn.Embedding 의 역할 (0) | 2021.11.22 |