Image processing 如何计算Pytork中的像素精度?

Image processing 如何计算Pytork中的像素精度?,image-processing,image-segmentation,floating-accuracy,pytorch,Image Processing,Image Segmentation,Floating Accuracy,Pytorch,我的代码如下所示,精度从0到9000,这意味着它显然不起作用 optimizer.zero_grad() outputs = net(inputs) loss = criterion(outputs, labels) loss.backward() optimizer.step() running_loss += loss.item() predicted = outputs.data predicted = predicted.to('cpu') predicted_img = predi

我的代码如下所示,精度从0到9000,这意味着它显然不起作用

optimizer.zero_grad()
outputs = net(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
running_loss += loss.item()


predicted = outputs.data
predicted = predicted.to('cpu')
predicted_img = predicted.numpy()

labels_data = labels.data
labels_data = labels_data.to('cpu')
labels_data = labels_data.numpy()
labels = labels.to(device)

_, predicted = torch.max(outputs.data, 1)
total = labels.size(0) * labels.size(1) * labels.size(2)
correct = (predicted_img == labels_data).sum().item()
accuracy += ( correct / total)
avg_accuracy = accuracy/(batch)

我做错了什么?

我假设下面这行在小批量上累积了准确性

accuracy += (correct/total)
avg_accurity=精度/批次给出整个数据集的平均精度,其中批次表示代表整个数据集的小批次总数

如果您获得的精度大于100,那么您应该检查在任何小批量中,您是否获得正确的>总计?还要检查total=labels\u data.size是否提供与下一行相同的值

total = labels.size(0) * labels.size(1) * labels.size(2)

总计=labels.neelement即可。size将张量的大小返回为torch.size对象