可能是由于没有正确传递模型的输出和目标标签导致计算准确度时出现问题。 可以使用以下代码示例来计算准确度:
def accuracy(outputs, labels):
_, predicted = torch.max(outputs, 1)
total = labels.size(0)
correct = (predicted == labels).sum().item()
acc = correct / total
return acc
然后在训练循环中调用该函数来计算准确度:
for epoch in range(num_epochs):
for i, (inputs, labels) in enumerate(trainloader):
outputs = model(inputs)
loss = criterion(outputs, labels)
optimizer.zero_grad()
loss.backward()
optimizer.step()
# Calculate Accuracy
acc = accuracy(outputs, labels)
print('Accuracy: {:.2f}%'.format(acc * 100))
其中,trainloader是dataloader对象,用于批处理输入数据和标签。输出的acc将会是一个介于0到1之间的小数,并通过将其乘以100来转换为百分比格式以便于阅读。