模型测试

import cv2
from torchvision import transforms, datasets, models
from torch.utils.data import DataLoader
import torch
import numpy as np
import os
from sklearn import metrics
import matplotlib.pyplot as plt device = torch.device("cuda:2" if torch.cuda.is_available() else "cpu")
print(device)
num_class = 3
model_path = 模型路径
model = 模型(num_class).to(device)
model.load_state_dict(torch.load(model_path))
model.eval() # Set model to evaluate mode test_dataset = 数据集读取(train=False)
test_loader = DataLoader(test_dataset, batch_size=1, shuffle=False, num_workers=2) def turn(l):
l = l.data.cpu().numpy()
l = l.squeeze()
l = np.swapaxes(l, 0, 2)
l = np.swapaxes(l, 0, 1)
return l for inputs, labels in test_loader:
model.to(device)
inputs = inputs.to(device)
labels = labels.to(device) pred = model(inputs)
# pred = torch.relu(pred)
pred = turn(pred)
gt = turn(labels)

评价指标

混淆矩阵

以分割为例,经过.flatten()处理。

def acc(pred, gt):
tp = 0
tn = 0
fp = 0
fn = 0
num = len(pred)
for i in range(num):
if pred[i] > 0 and gt[i] == 1:
tp += 1
if pred[i] > 0 and gt[i] == 0:
fp += 1
if pred[i] == 0 and gt[i] == 1:
fn += 1
if pred[i] == 0 and gt[i] == 0:
tn += 1
acc = (tp + tn) / num
iou = tp / (tp + fp + fn)
rec = tp / (tp + fn)
pre = tp / (tp + fp)
f1 = 2 * pre * rec / (pre + rec)
print("mAcc is :{}, mIou is :{}, recall is :{}, precision is :{}, f1 is :{}".format(acc, iou, rec, pre, f1))

ROC曲线图

def draw_roc(pred, gt, name):
tpr, fpr, thresholds = metrics.roc_curve(gt, pred, pos_label=0)
plt.figure
plt.plot(fpr, tpr, label = name)
plt.xlabel('FPR')
plt.ylabel('TPR')
plt.legend(loc = 'lower right')
plt.title(name)
plt.savefig('路径/{}.png'.format(name))
# plt.close() 如果有多个类别,不close()就会画在一张图上

[AI]-模型测试和评价指标的更多相关文章

  1. [DeeplearningAI笔记]ML strategy_1_2开发测试集评价指标

    机器学习策略 ML strategy 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.4 满足和优化指标 Stisficing and optimizing metrics 有时候把你要考 ...

  2. Microsoft宣布为Power BI提供AI模型构建器,关键驱动程序分析和Azure机器学习集成

    微软的Power BI现在是一种正在大量结合人工智能(AI)的商业分析服务,它使用户无需编码经验或深厚的技术专长就能够创建报告,仪表板等.近日西雅图公司宣布推出几款新的AI功能,包括图像识别和文本分析 ...

  3. 分类模型的性能评价指标(Classification Model Performance Evaluation Metric)

    二分类模型的预测结果分为四种情况(正类为1,反类为0): TP(True Positive):预测为正类,且预测正确(真实为1,预测也为1) FP(False Positive):预测为正类,但预测错 ...

  4. 回归模型的性能评价指标(Regression Model Performance Evaluation Metric)

    回归模型的性能评价指标(Performance Evaluation Metric)通常有: 1. 平均绝对误差(Mean Absolute Error, MAE):真实目标y与估计值y-hat之间差 ...

  5. 如何借助 JuiceFS 为 AI 模型训练提速 7 倍

    背景 海量且优质的数据集是一个好的 AI 模型的基石之一,如何存储.管理这些数据集,以及在模型训练时提升 I/O 效率一直都是 AI 平台工程师和算法科学家特别关注的事情.不论是单机训练还是分布式训练 ...

  6. CANN5.0黑科技解密 | 别眨眼!缩小隧道,让你的AI模型“身轻如燕”!

    摘要:CANN作为释放昇腾硬件算力的关键平台,通过深耕先进的模型压缩技术,聚力打造AMCT模型压缩工具,在保证模型精度前提下,不遗余力地降低模型的存储空间和计算量. 随着深度学习的发展,推理模型巨大的 ...

  7. 二手车价格预测 | 构建AI模型并部署Web应用 ⛵

    作者:韩信子@ShowMeAI 数据分析实战系列:https://www.showmeai.tech/tutorials/40 机器学习实战系列:https://www.showmeai.tech/t ...

  8. AI 音辨世界:艺术小白的我,靠这个AI模型,速识音乐流派选择音乐 ⛵

    作者:韩信子@ShowMeAI 数据分析实战系列:https://www.showmeai.tech/tutorials/40 机器学习实战系列:https://www.showmeai.tech/t ...

  9. 炸金花游戏(3)--基于EV(期望收益)的简单AI模型

    前言: 炸金花这款游戏, 从技术的角度来说, 比德州差了很多. 所以他的AI模型也相对简单一些. 本文从EV(期望收益)的角度, 来尝试构建一个简单的炸金花AI. 相关文章: 德州扑克AI--Prog ...

随机推荐

  1. Google Colab初次使用

    网页无法加载,出现HTTP ERROR 407 开启chrome时不要在最下面的固定栏打开,否则会出错.

  2. 普通 Docker 与 Kubernetes 对比

    Docker提供基本容器管理 API 和容器镜像文件格式Kubernetes 管理运行容器的(物理或虚拟)主机群集,如果 Docker 是 OCP 的"内核",Kubernetes ...

  3. ctfshow的web入门171

    web入门171 看到这个查询语句,我们可以进行相关操作 $sql = "select username,password from user where username !='flag' ...

  4. 在矩池云使用Disco Diffusion生成AI艺术图

    在 Disco Diffusion 官方说明的第一段,其对自身是这样定义: AI Image generating technique called CLIP-Guided Diffusion.DD ...

  5. logback-spring 集成 ELK、kafka的配置

    pom.xml <dependency> <groupId>com.github.danielwegener</groupId> <artifactId> ...

  6. Vue 路由懒加载, VueRouter一步完成Vue的路由懒加载 一行代码搞定懒加载

    Vue Router路由配置中的component里面配置即可 1 // 路由懒加载的方式加载组件 2 3 component: () => import('@/views/Detail'), ...

  7. MoCo V1:视觉领域也能自监督啦

    何凯明从 CVPR 2020 上发表的 MoCo V1(Momentum Contrast for Unsupervised Visual Representation Learning),到前几天挂 ...

  8. 简答一波 HashMap 常见八股面试题 —— 算法系列(2)

    请点赞,你的点赞对我意义重大,满足下我的虚荣心. Hi,我是小彭.本文已收录到 GitHub · Android-NoteBook 中.这里有 Android 进阶成长知识体系,有志同道合的朋友,关注 ...

  9. else语句

    else的搭配 与else语句配合使用有三种情况 if ...: else: if条件表达式不成立的时候执行else 注意else还可以与while循环和for循环组合在一起(这是一个全新的知识) 注 ...

  10. SpringCloud微服务实战——搭建企业级开发框架(四十四):【微服务监控告警实现方式一】使用Actuator + Spring Boot Admin实现简单的微服务监控告警系统

      业务系统正常运行的稳定性十分重要,作为SpringBoot的四大核心之一,Actuator让你时刻探知SpringBoot服务运行状态信息,是保障系统正常运行必不可少的组件.   spring-b ...