loss는 예측값과 정답의 차이
를 말하고
accuracy는 올바르게 예측된 데이터의 수 / 전체 데이터의 수
를 말한다.
loss가 작다고 해서 항상 acc가 높은 것이 아니고
반대로 loss가 높다고 해서 acc가 낮은 것은 아니다.
import numpy as np
import torch
y_pred = np.array([[0.3, 0.6, 0.1], [0.66, 0.3, 0.04]])
y_true = np.array([[0, 1, 0], [1, 0, 0]])
y_true = torch.from_numpy(y_true).float() # NumPy 배열을 Torch Tensor로 변환
Loss = torch.nn.BCELoss()
y_loss = Loss(torch.from_numpy(y_pred).float(), y_true)
# y_true에선 y_true[0][1] 0.6, y_true[1][1] 0.66이 가장 크기에
# y_pred가 [0][1]와 [1][1]이 크다고 해 둘 다 정답을 맞춘 경우
import numpy as np
import torch
y_pred = np.array([[0.3, 0.6, 0.1], [0.66, 0.3, 0.04]])
y_true = np.array([[0, 0, 1], [1, 0, 0]])
y_true = torch.from_numpy(y_true).float() # NumPy 배열을 Torch Tensor로 변환
Loss = torch.nn.BCELoss()
y_loss = Loss(torch.from_numpy(y_pred).float(), y_true)
# y_true에선 y_true[0][1] 0.6, y_true[1][1] 0.66이 가장 크지만
# y_pred는 [0][2]와 [1][1]이 크다고 해 둘 중 하나만 정답을 맞춘 경우
acc의 경우 0.5 이면 구분을 못하는 것이다.
따라서 loss가 낮다고 해서 무조건 acc가 높은 것도 아니고
loss가 작다고 acc가 큼을 보장할 수는 없다.