evaluate.load(metric)和dataset.load_metric(metric)

evaluate.loaddataset.load_metric 是两个不同的库中用于加载评估指标的方法,分别属于 evaluate 库和 datasets 库。它们虽然功能相似,但在使用场景和细节上有一些区别。

evaluate.load(metric)

evaluate 库是 Hugging Face 提供的一个专门用于评估模型性能的库。evaluate.load 用于加载预定义的或自定义的评估指标。

import evaluate# 加载预定义的指标,例如准确率
accuracy = evaluate.load('accuracy')# 加载自定义的指标
custom_metric = evaluate.load('path/to/custom/metric')
特点:
  1. 专注于评估evaluate 库专门设计用于各种评估任务,因此它包含了大量常见的评估指标,如准确率(accuracy)、精确率(precision)、召回率(recall)等。
  2. 灵活性高:支持加载和使用自定义指标,适用于需要自定义评估逻辑的场景。
  3. 独立使用:可以独立于 datasets 库使用,更加专注于评估部分。

datasets.load_metric(metric)

datasets 库同样是 Hugging Face 提供的,用于处理和操作数据集。dataset.load_metric 用于加载评估指标,并且和数据集操作紧密结合。

from datasets import load_metric# 加载预定义的指标,例如准确率
accuracy = load_metric('accuracy')# 加载自定义的指标(此功能可能受限,具体视版本和实现情况而定)
# custom_metric = load_metric('path/to/custom/metric')
特点:
  1. 与数据集紧密集成datasets 库主要用于数据集的加载和处理,load_metric 提供了与数据集评估相关的便捷功能。
  2. 便捷性:对于已经使用 datasets 库进行数据处理的用户,直接调用 load_metric 来评估数据会更加方便。
  3. 功能有限:虽然也提供了多种预定义的评估指标,但在灵活性和可扩展性方面可能不如 evaluate 库。

选择建议

  • 如果你只需要评估模型性能,并且可能需要自定义或更复杂的评估逻辑,推荐使用 evaluate.load
  • 如果你已经在使用 datasets 库处理数据集,并且你的评估需求相对简单,推荐使用 datasets.load_metric 以便捷和一致性。

总结:evaluate.load 更加专业和灵活,适合独立使用和复杂评估需求;而 datasets.load_metric 则适合与数据集处理流程结合的简单评估任务。

Tips:

因为远程加载容易连网失败,所以一般将metric的脚本下载到本地,但是经过测试,两者的"bleu"指标都不能成功的本地加载,具体也不懂(看见别人也有类似的情况,有人懂了麻烦踢一下),最后我放弃测bleu,使用sacrebleu和google_bleu 。   另外,加载本地脚本两种脚本的加载方法要对应,似乎是不能兼容的。  我最后是把datasets.load_metric下载的缓存文件直接复制出来新建的一个文件夹,然后用datasets.load_metric()加载该脚本

运行的过程他会报一个警告:/opt/conda/envs/test/lib/python3.9/site-packages/datasets/load.py:855: FutureWarning: The repository for sacrebleu contains custom code which must be executed to correctly load the metric. You can inspect the repository content at /opt/data/private/xxx/xxx/dataset_metrics/metrics/sacrebleu/sacrebleu.py

意思是你是使用的自定义的code脚本来评估,然后你可以在/opt/data/private/xxx/xxx/dataset_metrics/metrics/sacrebleu/sacrebleu.py这里面查看脚本的具体情况。       反思:每次报错都不认真看,还得认真看警告和报错,才知道你是否本地加载成功了没啊。。。。

参考:Huggingface Evaluate包使用小坑_evaluate huggingface-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS 7.9 源码编译安装maven

CentOS 7.9 源码编译安装maven Centos镜像源中没有maven,通过下载源码编译进行安装: # 下载 $ wget https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz --no-check-certificate $ tar xf apache-maven-3.9.6-bin.…

Python的类全面系统学习

文章目录 1. 基本概念1.1 类(Class)1.2 对象(Object) 2. 类的属性和方法3. 类的继承3.1 继承的概念3.2 单继承3.3 多重继承 4. 方法重写与多态4.1 方法重写4.2 多态 5. 特殊方法与运算符重载5.1 特殊方法(魔法方法&…

MoE模型大火,源2.0-M32诠释“三个臭皮匠,顶个诸葛亮”!

文 | 智能相对论 作者 | 陈泊丞 近半年来,MoE混合专家大模型彻底是火了。 在海外,OpenAI的GPT-4、谷歌的Gemini、Mistral AI的Mistral、xAI的Grok-1等主流大模型都采用了MoE架构。而在国内,浪潮信息也刚刚发布了基于MoE架构的“源2.0-M3…

读取csv文件

问题: 一直显示是非数值型数据 解决:原来是sep“\t”,改为sep","即可 注:读取csv文件时,sep为关键词划分 import pandas as pd data pd.read_csv("y.csv",sep",") # data pd.read_…

C++【缺省参数|函数重载|引用】

目录 1 缺省参数 1.1 全缺省 1.2 半缺省 注意 1.3 应用 2 函数重载 函数重载的概念 1、参数类型不同 2、参数个数不同 3、参数类型顺序不同 3 引用 3.1 引用概念 3.2 引用特性 3.3 常引用 3.4 使用场景 3.5 传值、传引用效率比较 3.6 引用和指针的区别 1 缺…

leetcode 2981.找出出现至少三次的最长子特殊字符串(纯哈希表暴力)

leetcode 2981.找出出现至少三次的最长子特殊字符串(传送门) class Solution { public:int maximumLength(string s) {int hash[30][52] { 0 },len 1,maxn0;char last A;for (char ch : s) {if (ch last) len;else len 1;for (int i len; i > …

基于51单片机的温度+烟雾报警系统设计

一.硬件方案 本设计采用51单片机为核心控制器,利用气体传感器MQ-2、ADC0832模数转换器、DS18B20温度传感器等实现基本功能。通过这些传感器和芯片,当环境中可燃气体浓度或温度等发生变化时系统会发出相应的灯光报警信号和声音报警信号,以此来…

输入输出(2)——C++的标准输出流

目录 一、C的标准输出流 (一)cout、cerr和clog流对象 1、cout 流对象 2、cerr 流对象 3、clog流对象 (二)用函数put输出字符 (三)用函数 write 输出字符 一、C的标准输出流 标准输出流——流向标准输…

【C++课程学习】:二叉树的基本函数实现

🎁个人主页:我们的五年 🔍系列专栏:C课程学习 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 🍉二叉树的结构类型: 🍉1.创建二叉树函数(根据数组&am…

如何向一个六岁的孩子讲解JavaScript 闭包的工作原理是什么?

作为一位六岁孩子的父亲,目前我正在教小孩子们编程(同时我自己也是一个对编程没有正式教育的新手),我认为最好的学习方式是通过实际操作。如果六岁的孩子已经准备好理解闭包的概念,那么他们也足够大,可以自己动手试一试。下面的解释文字可能更适合十岁左右的孩子。 案例…

30【Aseprite 作图】桌子——拆解

1 桌子只要画左上方,竖着5,斜着3个1,斜着两个2,斜着2个3,斜着一个5,斜着一个很长的 然后左右翻转 再上下翻转 在桌子腿部分,竖着三个直线,左右都是斜线;这是横着水平线不…

Python os.path.isfile() 和 os.path.isdir() 函数

Python os.path.isfile 和 os.path.isdir 函数 正文 正文 在网上看到很多人对这两个函数的用法有过说明,然而感觉都没有说到它们的本质,这里特来记录一下。os.path.isfile() 用来判断所给参数是否一个文件。os.path.isdir() 用来判断所给的参数是否是一…

Mybatis多表查询

MyBatis-多表查询-一对一查询(方式一) 一个菜品对应一个分类 直接菜品记录category对象 菜品id写入Dish,后面的分类直接写入 Category类 封装,如果sql不能封装上,那么直接使用resultmap封装 使用resultType只能封装基本属性 所以要定义一个resultmap手动封装 使用标签 要…

Python数据处理,使用 tkinter 模块点击获取文件目录

Python数据处理,使用 tkinter 模块点击获取文件目录 正文 正文 当我们进行数据处理读取文件内数据的时候,通常,我们需要设定好一个存放当前文件所在目录的变量。比如如下目录: file_path rC:\Users\xxx\Desktop\DataSet\Data.c…

【车载开发系列】Vector工具链的安装

【车载开发系列】Vector工具链的安装 【车载开发系列】Vector工具链的安装 【车载开发系列】Vector工具链的安装一. VectorDriver二. DaVinci_Developer三. DaVinci Configurator 一. VectorDriver Vector Driver Setup是Vector产品链中重要的驱动软件,所有的硬件设备进行连接…

mvc的常见注解

问文心一言的,记录一下。 PathVariable 路径变量注解 PathVariable 是 Spring MVC 提供的一个注解,它用于从 URI 模板变量中绑定值到控制器方法的参数上。当你在 RequestMapping、GetMapping、PostMapping、PutMapping、DeleteMapping 等注解的 URL 路…

写Python时不用import,你会遭遇什么

from *** import *** 想必你已经再熟悉不过这样的python语法。 当你的 python 代码需要获取外部的一些功能(一些已经造好的轮子),你就需要使用到 import 这个声明关键字。import可以协助导入其他 module 。(类似 C 预约的 inclu…

信号处理中简单实用的方法

最小二乘法拟合消除趋势项 消除趋势项函数 在MATLAB的工具箱中已有消除线性趋势项的detrend函数;再介绍以最小二乘法拟合消除趋势项的polydetrend 函数。 函数:detrend功能:消除线性趋势项 调用格式:ydetrend(x) 说明:输入参数x是带有线性趋势项的信号序列,输出…

salesforce 公式字段 判断一个字段是否在某个多选列表中

在 Salesforce 中,你可以使用公式字段来判断一个字段的值是否在一个多选列表中。这通常涉及使用包含特定值的函数和一些字符串操作。以下是一个常见的方法: 假设你有一个多选列表字段 Multi_Select_Field__c,你想检查这个字段是否包含某个值…

函数式接口:现代编程的利器

1. 引言 在软件开发的演进过程中,函数式编程(Functional Programming, FP)逐渐显露头角,成为解决复杂问题的有效工具之一。函数式接口作为函数式编程的核心概念之一,其重要性不言而喻。本文将深入探讨函数式接口的概念…