PyTorch 模型评估代码详解 - 损失和准确率计算
这段代码用于在测试集上评估模型的损失和准确率。
- 首先初始化评估损失和准确率的变量
eval_loss和eval_acc为 0。 - 将模型设置为评估模式,即不进行梯度更新,使用
model.eval()。 - 针对测试集中的每一个 batch,将数据和标签移动到指定设备上(如 GPU),使用
imgs.to(device)和labels.to(device)。 - 通过模型预测得到预测值
predict,使用model(imgs)。 - 计算预测值与真实标签之间的损失
loss,使用criterion(predict, labels)。 - 累加到评估损失
eval_loss中,使用eval_loss += loss.item()。 - 对预测值进行 argmax 操作,得到最大预测概率对应的类别,使用
torch.argmax(predict, axis=1)。 - 将其与真实标签进行比较,计算正确预测的数量
acc_num,使用(result == labels).sum().item()。 - 根据正确预测的数量和当前 batch 的大小计算准确率
acc_rate,使用acc_num / imgs.shape[0]。 - 将其累加到评估准确率
eval_acc中,使用eval_acc += acc_rate。 - 计算完整个测试集的损失平均值和准确率平均值,分别存储到
eval_losses和eval_acces中,使用eval_losses.append(eval_loss / len(test_loader))和eval_acces.append(eval_acc / len(test_loader))。
最终,eval_losses 和 eval_acces 中的值可以用来评估模型在测试集上的性能。
原文地址: https://www.cveoy.top/t/topic/oRnS 著作权归作者所有。请勿转载和采集!