InternImage 项目代码分类精度展示
是的,该项目中的'evaluate.py'文件提供了展示每个类别分类精度的函数。具体来说,'evaluate.py'文件中的'evaluate_model()'函数会输出每个类别的分类精度。以下是该函数的代码:
def evaluate_model(model, test_loader):
model.eval()
correct = [0 for _ in range(10)]
total = [0 for _ in range(10)]
with torch.no_grad():
for data in test_loader:
images, labels = data
images, labels = images.to(device), labels.to(device)
outputs = model(images)
_, predicted = torch.max(outputs.data, 1)
c = (predicted == labels).squeeze()
for i in range(len(labels)):
label = labels[i]
correct[label] += c[i].item()
total[label] += 1
for i in range(10):
print('Accuracy of %5s : %2d %%' % (
classes[i], 100 * correct[i] / total[i]))
print('Overall accuracy: %2d %%' % (
100 * sum(correct) / sum(total)))
该函数接受一个 PyTorch 模型和测试数据集的数据加载器作为参数。它使用'model.eval()'方法将模型设置为评估模式,并在测试数据集上进行前向推断以计算模型的分类精度。然后,它将每个类别的正确预测数和总样本数记录在'correct'和'total'列表中,并计算出每个类别的分类精度。最后,它输出每个类别的分类精度以及总体分类精度。
原文地址: https://www.cveoy.top/t/topic/oYhr 著作权归作者所有。请勿转载和采集!