-
BCE & BCEwithLOGIT & CE파이토치&텐서플로우&관련코딩 2021. 2. 15. 22:46
맨날 BCE만 하다보니까 마지막 fc 레이어 다음에 sigmoid 를 쓰는게 습관이 되서 적는다.
multi class를 할때에는 CE를 적는데 BCE는 sigmoid가 적용이 안되어있고, BCE(output, label)에서 output에는 무조건 0과 1 사이의 확률값이 나와야 되기 때문에 sigmoid를 거쳐야 하는 것이다. 따라서 BCE는 output이 1개가 나와도 되는 것이고,
CE는 자동으로 안에 softmax 함수가 있다. 그래서 그냥 fc만 거친 값, 즉 음수가 될 수 있는 값들이 들어가기 때문에 따로 sigmoid나 softmax를 안해도 된다.
BCELosswithLogit 은 sigmoid를 포함하고 있기 때문에 생 logit값을 넣어야 한다.
'파이토치&텐서플로우&관련코딩' 카테고리의 다른 글
모델 저장 (0) 2021.04.22 cv2.gaussianblur 계산하는법 (0) 2021.04.17 progress bar 구현하기. (Jupyter, Pycharm) (0) 2021.02.03 CUDA error: device-side assert triggered (0) 2021.01.28 torch.Tensor vs torch.tensor vs torch.autograd.Variable (0) 2021.01.26