IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> PaddleOCR的方向分类器代码解析(六) -> 正文阅读

[人工智能]PaddleOCR的方向分类器代码解析(六)

2021SC@SDUSC
??这一篇博客我来介绍PaddleOCR的方向分类器使用的评估代码。
??在机器学习中,性能指标(Metrics)是衡量一个模型好坏的关键,通过衡量模型输出预测值和 真实值之间的某种“距离”得出的。性能指标往往是我们做模型时的最终目标,如准确率,召回率,敏感度等等,但是性能指标常常因为不可微分,无法作为优化的loss函数,因此采用如cross-entropy,rmse等“距离”可微函数作为优化目标,以期待在loss函数降低的时候,能够提高性能指标。而最终目标的性能指标则作为模型训练过程中,作为验证集做决定(early stoping 或 model selection)的主要依据,与训练结束后评估本次训练出的模型好坏的重要标准。性能指标根据问题不同,主要分为:回归类性能指标和分类性能指标。
??下面是PaddleOCR的方向分类器中的评估代码,位于PaddleOCR-release-2.2->ppocr->metrics->cls_metric.py。由下图的代码可以看出,方向分类器

class ClsMetric(object):
    def __init__(self, main_indicator='acc', **kwargs):
        self.main_indicator = main_indicator
        self.reset()

    def __call__(self, pred_label, *args, **kwargs):
        preds, labels = pred_label
        correct_num = 0
        all_num = 0
        for (pred, pred_conf), (target, _) in zip(preds, labels):
            if pred == target:
                correct_num += 1
            all_num += 1
        self.correct_num += correct_num
        self.all_num += all_num
        return {'acc': correct_num / all_num, }

    def get_metric(self):
        """
        return metrics {
                 'acc': 0
            }
        """
        acc = self.correct_num / self.all_num
        self.reset()
        return {'acc': acc}

    def reset(self):
        self.correct_num = 0
        self.all_num = 0

的主要评估标准为准确率(acc)。每进行一次评估即调用__init__函数都先定义主要评估标准为acc,并调用reset函数清除准确样本个数(correct_num)和全部样本个数(all_num )。然后在__call__函数中逐一对比数据集中的预测样本和目标样本,如果一样则correct_num加一,无论结果如何all_num 都加一。get_metric函数也是用来取得acc。call函数使得Python中的类变成可调用的,correct_numcall和all_num 都在call函数中获得数据集中的值,函数返回“‘acc’: correct_num / all_num, ”就可在调用ClsMetric类时在控制台获得评估标准准确率(acc)值。而调用get_metric函数可以使用call函数中已获得值的两个变量计算出准确率,并且调用reset函数清除这两个值,便于下一次使用评估函数。
??虽然PaddleOCR的方向分类器并没有使用复杂的评估方法,但是由于现在的方向分类器只用来判断正向和倒向两个方向的图像分割框,所以使用准确率就可以很好地评估方向分类器代码的效果。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-23 15:46:04  更:2021-12-23 15:46:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/10 21:02:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码