PyTorch模型分类精度评估:展示每个类别的准确率
下面是增加展示具体每个类别分类精度的函数的代码示例:
def show_class_accuracy(model, dataloader, device):
# Set the model to evaluation mode
model.eval()
# Initialize variables to store accuracy for each class
class_correct = [0] * len(dataloader.dataset.classes)
class_total = [0] * len(dataloader.dataset.classes)
# Iterate over data
with torch.no_grad():
for inputs, labels in dataloader:
inputs = inputs.to(device)
labels = labels.to(device)
# Forward pass
outputs = model(inputs)
# Get predicted class labels
_, predicted = torch.max(outputs, 1)
# Update class accuracy variables
for i in range(len(labels)):
label = labels[i]
class_correct[label] += (predicted[i] == label).item()
class_total[label] += 1
# Print accuracy for each class
print('Accuracy for each class:')
for i in range(len(dataloader.dataset.classes)):
acc = 100 * class_correct[i] / class_total[i]
print(' ' + dataloader.dataset.classes[i] + ': {:.2f}%'.format(acc))
# Print overall accuracy
overall_acc = 100 * sum(class_correct) / sum(class_total)
print('Overall accuracy: {:.2f}%'.format(overall_acc))
这个函数会计算每个类别的分类精度,并打印出来。它接受三个参数:model,dataloader 和 device。model 是训练好的模型,dataloader 是数据集的 DataLoader,device 是模型所在的设备 (GPU 或 CPU)。
使用这个函数很简单,只需要在训练好模型后调用它即可:
show_class_accuracy(model, test_dataloader, device)
其中 model 是训练好的模型,test_dataloader 是测试集的 DataLoader,device 是模型所在的设备 (GPU 或 CPU)。
原文地址: https://www.cveoy.top/t/topic/oYhY 著作权归作者所有。请勿转载和采集!