• 카테고리

    질문 & 답변
  • 세부 분야

    딥러닝 · 머신러닝

  • 해결 여부

    미해결

5-1강 CNN 의 정확도 구하기 질문입니다.

22.10.18 20:28 작성 조회수 266

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

 

안녕하세요 딥러닝호형님 !

질문을 하다가 아래 질문들을 쭉 읽어보게 되었는데, 저도 궁금했던 torch.max(outputs.data, 1) 부분에 대한 설명을 보게되었습니다.

아래와 같이 설명을 해주셨는데 이해가 가지않아 질문드립니다.

 

outputs = [[0.1, 0.4, 0.5], [0.2, 0.6, 0,2]] 

" 여기서의 최댓값의 위치는 2번째(0.5)와 1번째(0.6)입니다. 즉, 첫번째 이미지는 2라고 예측하는 것이고 두번째 이미지는 1이라고 예측을 하게 됩니다. 이를 torch.max를 이용하여 나타냅니다. "

행이아닌 열(1)을 기준으로 하나의 이미지가되며 이 기준으로 최댓값을 뽑는다고 하셨는데 위의 outputs를 "열"을 기준으로 한다면 최댓값은 총 3개 (0.2, 0.6, 0.5) 이렇게 나와야할 것 같다고 생각이 듭니다.

이 부분에 대해 설명 부탁드립니다. 감사합니다!

답변 1

답변을 작성해보세요.

0

안녕하세요.

말씀 하신 것이 열 기준으로 계산하신 것입니다.

" 여기서의 최댓값의 위치는 2번째(0.5)와 1번째(0.6)입니다. 즉, 첫번째 이미지는 2라고 예측하는 것이고 두번째 이미지는 1이라고 예측을 하게 됩니다. 이를 torch.max를 이용하여 나타냅니다. "

 

1행이 [0.1, 0.4, 0.5] 이고 2행이 [0.2, 0.6, 0,2] 이므로 각 행을 열 기준으로 max를 계산하게 됩니다.

따라서 가장 큰 값의 위치가 2, 1이므로 2, 1 값이 나옵니다.

 

정리하면

_, predicted = torch.max(x,1)이고 x의 크기가 (B,C)라면 predicted의 크기는 (B)가 됩니다.

_, predicted = torch.max(x,0)이고 x의 크기가 (B,C)라면 predicted의 크기는 (C)가 됩니다.

 

파이썬, 파이토치의 dim, axis가 다 같은 방식으로 기준을 잡고 연산을 합니다.

충분히 헷갈리실 수 있는 부분입니다.

열공하세요!!