F.softmax( )의 parameter dim에 대해 알아보자. 시각화가 가능한 tensor에 대해 1차원, 2차원일때를 관찰한다. 1차원 tensor F.softmax(input_tensor, dim=0) 1차원 tensor는 dim=0인 axis만 존재하므로 무조건 dim=0이다 1차원 tensor를 2차원 tensor처럼 착각해서 dim=0인데 왜 가로로 합이 1이지..? 라는 실수는 하지 말도록 하자. import torch import torch.nn.functional as F # 3개의 원소를 가진 벡터 텐서 정의하고 소프트맥스 함수의 입력으로 사용 z = torch.FloatTensor([1, 2, 3]) hypothesis = F.softmax(z, dim=0) print(hypoth..
https://www.inflearn.com/questions/282058/%EB%AA%A8%EB%8D%B8-%ED%8F%89%EA%B0%80-%EB%B6%80%EB%B6%84-%EC%A7%88%EB%AC%B8%EB%93%9C%EB%A6%BD%EB%8B%88%EB%8B%A4 모델 평가 부분 질문드립니다. - 인프런 [사진]-, predicted = torch.max(outputs.data, 1)앞에 -, 이부분 코드가 무슨 의미인가요?빨간색 표시한 부분 혹시 자세하게 코드 해설 가능할까요? - 질문 & 답변 | 인프런 www.inflearn.com outputs의 크기가 (배치 크기)x(클래스의 개수) 인데, 열이 하나의 이미지에 대응되는 벡터(하나의 Batch에 대응)를 나타낸다고 볼 수 있다. 따라서..
왜 nn.CrossEntropyLoss 사용시 F.softmax를 output activation으로 사용하지 않아도 되는가? Cross-Entropy Loss (CELoss)와 Softmax를 결합한 형태로 간단하게 정리할 수 있기 때문이다. PyTorch에서 제공하는 nn.CrossEntropyLoss( )는 아래의 간소화된 형태의 식을 사용한다. $CELoss = -x_{i} + log\sum_{c=1}^{N}e^{x_{c}}$ 위의 식은 Softmax와 CELoss를 각각 계산하는 것보다 한번에 계산하기에 computationally efficient 하기 때문이다. 그렇기에 PyTorch의 nn.CrossEntropyLoss( )는 내부적으로 Softmax 연산을 수행한다고 볼 수 있다. htt..