Я использую учебник PyTorch для вычисления точности по классам, и это исключает ошибку, которая использует tensor.item()
, которая уже находится в class_correct[target] += c[i].item()
class_correct = list(0. for i in range(15))
class_total = list(0. for i in range(15))
with torch.no_grad():
for ii, data in enumerate(test_loader):
t_image, target, classess, image_path = data
t_image = t_image.to(device)
target = target.to(device)
outputs = model(t_image)
_, predicted = torch.max(outputs, 1)
c = (predicted == target).squeeze()
for i in range(4):
target = target[i]
class_correct[target] += c[i].item()
class_total[target] += 1
for i in range(14):
print('Accuracy of %5s : %2d %%' % (
classes[i], 100 * class_correct[i] / class_total[i]))
, любой комментарий будет оценен.