NLP-transformer学习:(7)evaluate实践

NLP-transformer学习:(7)evaluate 使用方法

在这里插入图片描述

打好基础,为了后面学习走得更远。
本章节是单独的 NLP-transformer学习 章节,主要实践了evaluate。同时,最近将学习代码传到:https://github.com/MexWayne/mexwayne_transformers-code,作者的代码版本有些细节我发现到目前不能完全行的通,为了尊重原作者,我这里保持了大部分的内容,并表明了来源,欢迎大家一起学习。


提示:以下是本篇文章正文内容,下面案例可供参考

1 evaluate是什么?

evaluate库就是一个非常简单的机器学习评估库函数,封装了很多我们平差给你评估模型的函数。
地址:https://huggingface.co/evaluate-metric
我们可以在这个链接下看到有很多指标,比如 bleu sari precision
在这里插入图片描述

2 evaluate基本用法?

首先需要安装:
pip install evaluate

2.1 evaluate 调用与输入参数

代码:

import evaluateif __name__ == "__main__":# see the evalution function that evaluate supportprint(evaluate.list_evaluation_modules())#print(evaluate.list_evaluation_modules(include_community=False, with_details=True))# load the accuracy class accuracy = evaluate.load("accuracy")# introduce the accuracy functionsprint(accuracy.description)

结果:
在这里插入图片描述
但是看到这 介绍内容太少,我么不清楚输入怎么做

import evaluateif __name__ == "__main__":# load the accuracy class accuracy = evaluate.load("accuracy")# introduce the accuracy functions#print(accuracy.description)# the inputs help guide print(accuracy.inputs_description)

结果:
在这里插入图片描述
这样就会有很多详细,比如
在这里插入图片描述
这里 ,需要是 list of int 的 预测值(predictions)和真值(references),因为总共有6个,reference 和 predictions对的上的就3个,所以accuracy 是 0.5。
在这里插入图片描述
如果权重不同的还可以增加权证欧冠你,这样 accurarcy
在这里插入图片描述

2.2 evaluate 几种计算方式

(1)全局计算

import evaluateif __name__ == "__main__":######################################################## inputs and call # global accuracyaccuracy = evaluate.load("accuracy")results = accuracy.compute(references=[0,1,2,0,1,2], predictions=[0,1,1,2,1,0])print(results)# iterate accurarcyaccuracy = evaluate.load("accuracy")# for refs, preds in zip([[0,1],[0,1]],[2,8],[4,1], [[1,0],[0,1],[3,8],[4,1]]):for refs, preds in zip([0,1,2,3,4],[0,1,2,3,3]):accuracy.add(references=refs, precitions=preds)print(accuracy.compute())

第一个打印结果:
在这里插入图片描述
(2)全局计算

import evaluateif __name__ == "__main__":######################################################## inputs and call # global accuracyaccuracy = evaluate.load("accuracy")results = accuracy.compute(references=[0,1,2,0,1,2], predictions=[0,1,1,2,1,0])print(results)

在这里插入图片描述

(2)迭代计算:

import evaluateif __name__ == "__main__":# iterate accurarcyaccuracy = evaluate.load("accuracy")for refs, preds in zip([0,1,2,3,4],[0,1,2,3,3]):accuracy.add(references=refs, predictions=preds)print("iterate way:")print(accuracy.compute())

结果
在这里插入图片描述
(3)batch 迭代计算

import evaluateif __name__ == "__main__":# batch iterate accurarcyaccuracy = evaluate.load("accuracy")for refs, preds in zip([[0,1,2,3,4], [0,1,2,3,3], [8,8,8,8,8]],  # refs batches[[0,1,2,3,4], [0,1,2,3,5], [8,8,8,8,8]]):  # preds batchesaccuracy.add_batch(references=refs, predictions=preds)print("batch iterate way:")print(accuracy.compute())

结果:
在这里插入图片描述

(4)多指标
这里 我们选择 accuracy,precsion, f1, recall
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

import evaluateif __name__ == "__main__":# multiple labelsclf_metrics = evaluate.combine(["accuracy", "f1", "recall", "precision", "XNLI", "SARI"])print(clf_metrics.compute(predictions=[0, 1, 1, 1, 1], references=[0, 1, 0, 1, 1]))

运行结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3 评估可视化

有多个模型,然后都去做预测,我们需要可视化比较

import evaluateif __name__ == "__main__":##################################################### visualfrom evaluate.visualization import radar_plotdata = [{"accuracy": 0.99, "precision": 0.80, "f1": 0.95, "latency_in_seconds": 33.6 , "recall":0.5},{"accuracy": 0.98, "precision": 0.87, "f1": 0.91, "latency_in_seconds": 11.2 , "recall":0.5},{"accuracy": 0.98, "precision": 0.78, "f1": 0.88, "latency_in_seconds": 87.6 , "recall":0.6}, {"accuracy": 0.88, "precision": 0.78, "f1": 0.81, "latency_in_seconds": 101.6, "recall":0.7},{"accuracy": 0.78, "precision": 0.78, "f1": 0.81, "latency_in_seconds": 100.0, "recall":0.9}]model_names = ["Model 1", "Model 2", "Model 3", "Model 4", "Model 5"]plot = radar_plot(data=data, model_names=model_names)print(type(plot))plot.show()plot.savefig('radar.png')

结果
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1542544.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux篇】网络编程基础(笔记)

目录 一、服务器模型 1. C/S 模型 2. P2P模型 二、服务器编程框架 1. I/O处理单元 2. 逻辑单元 3. 网络存储单元 4. 请求队列 三、网络编程基础API 1. socket 地址处理 API (1)主机字节序和网络字节序 (2)通用socket地…

【计网】从零开始掌握序列化 --- JSON实现协议 + 设计 传输\会话\应用 三层结构

唯有梦想才配让你不安, 唯有行动才能解除你的不安。 --- 卢思浩 --- 从零开始掌握序列化 1 知识回顾2 序列化与编写协议2.1 使用Json进行序列化2.2 编写协议 3 封装IOService4 应用层 --- 网络计算器5 总结 1 知识回顾 上一篇文章我们讲解了协议的本质是双方能够…

4--SpringBoot项目中分类管理

目录 新增分类 分类分页查询 启用禁用分类 根据类型查询 修改分类 本文介绍SpringBoot项目中的分类管理,操作类似员工管理模块,具体详解可见以下博客,此处给出各部分代码 2--SpringBoot项目中员工管理 详解(一)-C…

基尔霍夫衍射理论

一、矢量理论到标量理论 前提条件:介质同时具有线性、各向同性、均匀性且无色散。 结论:电场和磁场的所有分量的行为完全相同,可由单一的一个标量波动方程描述,标量理论可以完全准确的代替矢量理论。 若介质不具备上述前提,则用标量理论来表征矢 量理论就会引入误差。 …

面试题 02.07. 链表相交 双指针

面试题 02.07. 链表相交 已解答 简单 相关标签 相关企业 提示 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证…

数业智能心大陆:职场倦怠的新解法

什么是职业倦怠? 在职场中,职业倦怠的表现形式丰富多样。从数业智能心大陆 AI 心理咨询平台的数据来看,职业倦怠呈现出多种状态。教师可能对教学不再满怀热情,精心备课也成为过去式;情绪上容易烦躁、易怒,在…

Elasticsearch不停机切换(上云)方案

如何给飞行中的飞机换引擎? 背景 业务背景 略 技术背景 线下集群40个索引左右,总数据量不大,不到100G因为ES承担的业务鉴权业务,所以不能接受停机割接 还有就是ES中数据来自各个业务方,推送的时机不定,也没有完备的重推机制&…

心理辅导系统的现代化:Spring Boot解决方案

1绪 论 1.1研究背景 随着计算机和网络技术的不断发展,计算机网络已经逐渐深入人们的生活,网络已经能够覆盖我们生活的每一个角落,给用户的网上交流和学习提供了巨大的方便。 当今社会处在一个高速发展的信息时代,计算机网络的发展…

MySQL --数据类型

文章目录 1.数据类型分类2.数值类型2.1 tinyint类型2.2 bit类型2.3小数类型2.31float2.32decimal 3.字符串类型3.1 char3.2varchar3.3 char和varchar比较 4.日期和时间类型5.enum和set 1.数据类型分类 2.数值类型 2.1 tinyint类型 数值越界测试: create table tt1…

Python画笔案例-056 绘制正方形金字塔

1、绘制正方形金字塔 通过 python 的turtle 库绘制 正方形金字塔,如下图: 2、实现代码 绘制正方形金字塔,以下为实现代码: """正方形金字塔.py """ import turtledef draw_square(length):for _ in

设计模式之组合模式例题

答案:C A 知识点:组合模式的意图:将对象组合成树型结构以表示“整体-部分”的层次结构,使得用户对单个对象和组合对象的使用具有一致性

数据挖掘实战-基于SARIMA时间序列模型预测阿里巴巴股票数据趋势

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

android kotlin Extension扩展函数

1、新建一个kt文件&#xff1a; 2、代码&#xff1a; class User(var name:String)/**扩展函数**/ fun User.Print(){print("用户名 $name") }// 扩展函数 swap,调换不同位置的值 fun MutableList<Int>.swap(index1: Int, index2: Int) {val tmp this[index1…

新手必看:一步步教你绑定常见邮箱到第三方应用(如何绑定QQ、163、Hotmail、Gmail等邮箱)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 邮箱绑定 📒📫 QQ邮箱📫 163邮箱📫 Hotmail邮箱📫 Gmail邮箱📫 Yahoo邮箱📫 iCloud邮箱📫 其他邮箱⚓️ 相关链接 ⚓️📖 介绍 📖 你是否曾经为绑定第三方邮箱而感到困惑?你不是一个人!许多人在尝试将QQ邮…

Linux进程概念1

前言 从这篇博客开始&#xff0c;后面我们主要讲xshell中Linux内容&#xff0c;C后续会继续补充一点 Linux基础内容我就不讲了&#xff0c;直接从进程开始讲 1. 进程是什么 像这种程序正在运行&#xff0c;还没有结束的过程就是一个进程&#xff0c;进程在电脑底部就是.exe文…

vscode 顶部 Command Center,minimap

目录 vscode 顶部 Command Center 设置显示步骤: minimap设置 方法一:使用设置界面 方法二:使用命令面板 方法三:编辑 settings.json 文件 左侧目录树和编辑器字体不一致: vscode 顶部 Command Center Visual Studio Code (VSCode) 中的 Command Center 是一个集中…

11年408考研真题解析-计算机网络

第一题&#xff1a; 解析&#xff1a;网络层虚电路服务和数据报服务 传输服务只有&#xff1a;有连接可靠和无连接不可靠两种&#xff0c;直接排除BC。 网络层指的是IP协议&#xff0c;由图二可知&#xff1a;运输层&#xff0c;网际层&#xff0c;网络接口层唯一有连接可靠的协…

vue3 本地windows下的字体的引用

1、先上了张效果&#xff1a; 2、windows 字体的路径&#xff1a;c:/windows/fonts/ 我们用华文行楷来测试下&#xff0c;先将华文行楷拷贝到/src/assets/fonts目录下。 3、然后我们来定义css&#xff1a; font-face {font-family: fyxk;font-style: normal;src: local(Opensan…

图结构感知的Transformer:一种新的图表示学习方法

人工智能咨询培训老师叶梓 转载标明出处 尽管图神经网络&#xff08;GNNs&#xff09;在处理图数据方面取得了显著成就&#xff0c;但它们在表达能力和捕获长距离依赖方面存在局限性。为了突破这些局限&#xff0c;研究者们开始探索将Transformer架构应用于图表示学习。在此基…

人工智能的前景与未来就业市场:机遇、挑战与社会影响

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已经逐渐渗透到我们生活的方方面面&#xff0c;它不仅引领着技术革新的浪潮&#xff0c;更在无声中重塑着我们的就业市场和社会结构。站在这个时代的交汇点上&#xff0c;我们不禁要问&#xff1a;人工智能将…