Data/Data Science
2018. 11. 7.
[Pytorch] CrossEntropy, BCELoss 함수사용시 주의할점
파이토치를 처음으로 써서 여러가지 문제를 겪었는데 다음에 또 같은실수를 반복하지 않기위해 정리해본다 [저처럼 처음이신분들만 이해가능한 오류] 제일먼저 CrossEntropy같은경우에는 마지막 레이어 노드수가 2개 이상이여야 한다. 1개일 경우에는 사용이 안됨. 마지막 레이어가 노드수가 1개일 경우에는 보통 Binary Classification을 할때 사용될수가 있는데 이럴경우 BCELoss를 사용할때가 있다. BCELoss함수를 사용할 경우에는 먼저 마지막 레이어의 값이 0~1로 조정을 해줘야하기 때문에 단순하게 마지막 레이어를 nn.Linear로 할때 out of range 에러가 뜬다. 따라서 BCELoss함수를 쓸땐 마지막 레이어를 시그모이드함수를 적용시켜줘야 한다. 두가지 경우의 예제를 간단하게..