resnet34 결과값의 의미가 궁금합니다.

처음 가입해보고 글을 작성하는거라 글 작성에 있어서 잘못된 점이 있다면 양해 부탁드립니다.

이 영상을 참고해서 만들어 보고 있습니다.

소스 코드입니다.

해당 코드에서는 이미지의 분류 결과를 outputs = model(inputs) 으로 받아오고 있습니다. 이때 print(output)을 하게 되면 3개의 소수가 묶인 배열이 출력됩니다. 이때 숫자가 크다면 해당 이미지 분류에 가깝다는것 까지는 이해를 했습니다. 하지만 그 숫자가 정확히 의미하는 바가 궁금해서 찾아보았지만 확인이 어려웠습니다.

제가 하고 싶은것은 이미지 분류와 얼마나 가까운지 확률로 표현을 하고 싶습니다. 숫자를 바로 백분위 형태로 바꾸어 보고 싶었지만 resnet34를 이용하는 다른 코드에서는 0.01 수준으로 작은 숫자가 나오고 제가 진행했을때는 8.0 수준의 숫자가 나옵니다. 그래서 단순히 곱하기나 비율을 가지고는 %로 표현이 어려울거 같아서 질문드립니다.

해당 숫자의 최대값이나 최소값이 존재하는지, 존재한다면 얼마인지, 그것을 어떻게 확인하는지 입니다.

또한 resnet34가 아니더라도 제가 원하는 이미지를 학습시켰을 때 예측 결과를 %로 확인하기 더욱 간편한 학습도구가 있다면 추천 부탁드립니다.

model 의 마지막 결과에 softmax를 적용하시면 됩니다. 본문에 첨부하신 링크에서 모델 평가하는 부분을 보시면

outputs = model(inputs)
_, preds = torch.max(outputs, 1)

이렇게 적용하고 있는데요. 여기서는 값보다는 어떤 클래스의 값이 가장 큰지를 기준으로 삼았기 때문에 저렇게 진행한 부분입니다.

import torch.nn.functional as F
outputs = model(inputs)
outputs_softmax = F.softmax(outputs)
print(outputs_softmax)

이렇게 확인해보시면 어떨까 싶습니다.

2개의 좋아요

이 글은 마지막 댓글이 달린지 오래(30일)되어 자동으로 닫혔습니다. 댓글 대신 새로운 글을 작성해주세요! :slight_smile: