Python 如何使用Pytork打印出每个类的预测精度?

Python 如何使用Pytork打印出每个类的预测精度?,python,machine-learning,computer-vision,pytorch,Python,Machine Learning,Computer Vision,Pytorch,我正试图使用PyTorch打印出基于官方教程的每个类的预测精度 但事情似乎出了问题。我的代码打算执行以下工作: for epoch in range(num_epochs): # Each epoch has a training and validation phase for phase in ['train', 'val']: ... (this is given by the tutorial) (my code) class_

我正试图使用PyTorch打印出基于官方教程的每个类的预测精度

但事情似乎出了问题。我的代码打算执行以下工作:

    for epoch in range(num_epochs):

    # Each epoch has a training and validation phase
    for phase in ['train', 'val']:
       ... (this is given by the tutorial)

    (my code)

    class_correct = list(0. for i in range(3))
    class_total = list(0. for i in range(3))

    for data in dataloaders['val']:
        images, labels = data
        outputs = model(inputs)
        _, predicted = torch.max(outputs.data, 1)
        c = (predicted == labels.data).squeeze()

        for i in range(4):
            label = labels.data[i]
            class_correct[label] += c[i]
            class_total[label] += 1

    for i in range(3):
        print('Accuracy of {} : {} / {} = {:.4f} %'.format(i, 
class_correct[i], class_total[i], 100 * class_correct[i].item() / 
class_total[i]))

    print(file = f)
    print()
例如,历元1/1的输出为:

我认为应该满足以下等式:

运行_校正:=2+2

但事情并不像我想的那样发生

怎么了? 希望有人能指出我的错误,并教我如何正确地做到这一点


谢谢

最后,我解决了这个问题。首先,我比较了两个模型的参数,发现它们是相同的。所以我确认模型是一样的。然后,我检查了两个输入,惊奇地发现它们是不同的

所以我仔细检查了两个模型的输入,答案是传递给第二个模型的参数没有更新

代码:

改为:

for data in dataloaders['val']:
    inputs, labels = data
    outputs = model(inputs)
完成了

for data in dataloaders['val']:
    inputs, labels = data
    outputs = model(inputs)