Evaluate 文档

主要类

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

主要类

EvaluationModuleInfo

基类 EvaluationModuleInfo 为其子类 MetricInfoComparisonInfoMeasurementInfo 实现了逻辑。

class evaluate.EvaluationModuleInfo

< >

( description: str citation: str features: typing.Union[datasets.features.features.Features, typing.List[datasets.features.features.Features]] inputs_description: str = <factory> homepage: str = <factory> license: str = <factory> codebase_urls: typing.List[str] = <factory> reference_urls: typing.List[str] = <factory> streamable: bool = False format: typing.Optional[str] = None module_type: str = 'metric' module_name: typing.Optional[str] = None config_name: typing.Optional[str] = None experiment_id: typing.Optional[str] = None )

用于存储 MetricInfoComparisonInfoMeasurementInfo 评估信息的基类。

EvaluationModuleInfo 记录了一次评估,包括其名称、版本和特性。完整列表请参阅构造函数参数和属性。

注意:并非所有字段在构建时都是已知的,可能会在以后更新。

from_directory

< >

( metric_info_dir )

参数

  • metric_info_dir (str) — 包含 metric_info JSON 文件的目录。这应该是特定指标版本的根目录。

metric_info_dir 中的 JSON 文件创建 EvaluationModuleInfo

示例

>>> my_metric = EvaluationModuleInfo.from_directory("/path/to/directory/")

write_to_directory

< >

( metric_info_dir )

参数

  • metric_info_dir (str) — 要保存 metric_info_dir 的目录。

EvaluationModuleInfo 作为 JSON 写入 metric_info_dir。同时将许可证单独保存在 LICENSE 文件中。

示例

>>> my_metric.info.write_to_directory("/path/to/directory/")

class evaluate.MetricInfo

< >

( description: str citation: str features: typing.Union[datasets.features.features.Features, typing.List[datasets.features.features.Features]] inputs_description: str = <factory> homepage: str = <factory> license: str = <factory> codebase_urls: typing.List[str] = <factory> reference_urls: typing.List[str] = <factory> streamable: bool = False format: typing.Optional[str] = None module_type: str = 'metric' module_name: typing.Optional[str] = None config_name: typing.Optional[str] = None experiment_id: typing.Optional[str] = None )

关于指标的信息。

EvaluationModuleInfo 记录了一个指标,包括其名称、版本和特性。完整列表请参阅构造函数参数和属性。

注意:并非所有字段在构建时都是已知的,可能会在以后更新。

class evaluate.ComparisonInfo

< >

( description: str citation: str features: typing.Union[datasets.features.features.Features, typing.List[datasets.features.features.Features]] inputs_description: str = <factory> homepage: str = <factory> license: str = <factory> codebase_urls: typing.List[str] = <factory> reference_urls: typing.List[str] = <factory> streamable: bool = False format: typing.Optional[str] = None module_type: str = 'comparison' module_name: typing.Optional[str] = None config_name: typing.Optional[str] = None experiment_id: typing.Optional[str] = None )

关于比较的信息。

EvaluationModuleInfo 记录了一次比较,包括其名称、版本和特性。完整列表请参阅构造函数参数和属性。

注意:并非所有字段在构建时都是已知的,可能会在以后更新。

class evaluate.MeasurementInfo

< >

( description: str citation: str features: typing.Union[datasets.features.features.Features, typing.List[datasets.features.features.Features]] inputs_description: str = <factory> homepage: str = <factory> license: str = <factory> codebase_urls: typing.List[str] = <factory> reference_urls: typing.List[str] = <factory> streamable: bool = False format: typing.Optional[str] = None module_type: str = 'measurement' module_name: typing.Optional[str] = None config_name: typing.Optional[str] = None experiment_id: typing.Optional[str] = None )

关于度量的信息。

EvaluationModuleInfo 记录了一次度量,包括其名称、版本和特性。完整列表请参阅构造函数参数和属性。

注意:并非所有字段在构建时都是已知的,可能会在以后更新。

EvaluationModule

基类 EvaluationModule 为其子类 MetricComparisonMeasurement 实现了逻辑。

class evaluate.EvaluationModule

< >

( config_name: typing.Optional[str] = None keep_in_memory: bool = False cache_dir: typing.Optional[str] = None num_process: int = 1 process_id: int = 0 seed: typing.Optional[int] = None experiment_id: typing.Optional[str] = None hash: str = None max_concurrent_cache_files: int = 10000 timeout: typing.Union[int, float] = 100 **kwargs )

参数

  • config_name (str) — 用于定义特定于模块计算脚本的哈希值,并防止在模块加载脚本被修改时模块数据被覆盖。
  • keep_in_memory (bool) — 在内存中保留所有预测和参考。在分布式设置中不可行。
  • cache_dir (str) — 用于存储临时预测/参考数据的目录路径。在分布式设置中,数据目录应位于共享文件系统上。
  • num_process (int) — 指定分布式设置中的总节点数。这对于在分布式设置中计算模块(特别是非累加模块,如 F1)很有用。
  • process_id (int) — 在分布式设置中指定当前进程的 ID(介于 0 和 num_process-1 之间)。这对于在分布式设置中计算模块(特别是非累加指标,如 F1)很有用。
  • seed (int, 可选) — 如果指定,这将在运行 compute() 时临时设置 numpy 的随机种子。
  • experiment_id (str) — 一个特定的实验 ID。如果多个分布式评估共享同一个文件系统,则使用此 ID。这对于在分布式设置中计算模块(特别是非累加指标,如 F1)很有用。
  • hash (str) — 用于根据哈希文件内容识别评估模块。
  • max_concurrent_cache_files (int) — 并发模块缓存文件的最大数量(默认为 10000)。
  • timeout (Union[int, float]) — 分布式设置同步的超时时间(秒)。

EvaluationModule 是指标、比较和度量的基类和通用 API。

add

< >

( prediction = None reference = None **kwargs )

参数

  • prediction (list/array/tensor, 可选) — 预测。
  • reference (list/array/tensor, 可选) — 参考。

为评估模块的堆栈添加一个预测和参考。

示例

>>> import evaluate
>>> accuracy = evaluate.load("accuracy")
>>> accuracy.add(references=[0,1], predictions=[1,0])

add_batch

< >

( predictions = None references = None **kwargs )

参数

  • predictions (list/array/tensor, 可选) — 预测。
  • references (list/array/tensor, 可选) — 参考。

为评估模块的堆栈添加一批预测和参考。

示例

>>> import evaluate
>>> accuracy = evaluate.load("accuracy")
>>> for refs, preds in zip([[0,1],[0,1]], [[1,0],[0,1]]):
...     accuracy.add_batch(references=refs, predictions=preds)

compute

< >

( predictions = None references = None **kwargs ) dictNone

参数

  • predictions (list/array/tensor, 可选) — 预测。
  • references (list/array/tensor, 可选) — 参考。
  • **kwargs (可选) — 将被转发到评估模块的 compute() 方法的关键字参数(详情见 docstring)。

返回

dictNone

  • 如果在主进程(process_id == 0)上运行此评估模块,则返回包含结果的字典。
  • 如果评估模块不在主进程上运行(process_id != 0),则返回 None

计算评估模块。

不允许使用位置参数以防止错误。

>>> import evaluate
>>> accuracy =  evaluate.load("accuracy")
>>> accuracy.compute(predictions=[0, 1, 1, 0], references=[0, 1, 0, 1])

download_and_prepare

< >

( download_config: typing.Optional[datasets.download.download_config.DownloadConfig] = None dl_manager: typing.Optional[datasets.download.download_manager.DownloadManager] = None )

参数

  • download_config (DownloadConfig, 可选) — 特定的下载配置参数。
  • dl_manager (DownloadManager, 可选) — 要使用的特定下载管理器。

下载并准备评估模块以供读取。

示例

>>> import evaluate

class evaluate.Metric

< >

( config_name: typing.Optional[str] = None keep_in_memory: bool = False cache_dir: typing.Optional[str] = None num_process: int = 1 process_id: int = 0 seed: typing.Optional[int] = None experiment_id: typing.Optional[str] = None hash: str = None max_concurrent_cache_files: int = 10000 timeout: typing.Union[int, float] = 100 **kwargs )

参数

  • config_name (str) — 用于定义特定于指标计算脚本的哈希值,并防止在指标加载脚本被修改时指标数据被覆盖。
  • keep_in_memory (bool) — 在内存中保留所有预测和参考。在分布式设置中不可行。
  • cache_dir (str) — 用于存储临时预测/参考数据的目录路径。在分布式设置中,数据目录应位于共享文件系统上。
  • num_process (int) — 指定分布式设置中的总节点数。这对于在分布式设置中计算指标(特别是非累加指标,如 F1)很有用。
  • process_id (int) — 在分布式设置中指定当前进程的 ID(介于 0 和 num_process-1 之间)。这对于在分布式设置中计算指标(特别是非累加指标,如 F1)很有用。
  • seed (int, 可选) — 如果指定,这将在运行 compute() 时临时设置 numpy 的随机种子。
  • experiment_id (str) — 一个特定的实验 ID。如果多个分布式评估共享同一个文件系统,则使用此 ID。这对于在分布式设置中计算指标(特别是非累加指标,如 F1)很有用。
  • max_concurrent_cache_files (int) — 并发指标缓存文件的最大数量(默认为 10000)。
  • timeout (Union[int, float]) — 分布式设置同步的超时时间(秒)。

Metric 是所有指标的基类和通用 API。

class evaluate.Comparison

< >

( config_name: typing.Optional[str] = None keep_in_memory: bool = False cache_dir: typing.Optional[str] = None num_process: int = 1 process_id: int = 0 seed: typing.Optional[int] = None experiment_id: typing.Optional[str] = None hash: str = None max_concurrent_cache_files: int = 10000 timeout: typing.Union[int, float] = 100 **kwargs )

参数

  • config_name (str) — 用于定义特定于比较计算脚本的哈希值,并防止在比较加载脚本被修改时比较数据被覆盖。
  • keep_in_memory (bool) — 在内存中保留所有预测和参考。在分布式设置中不可行。
  • cache_dir (str) — 用于存储临时预测/参考数据的目录路径。在分布式设置中,数据目录应位于共享文件系统上。
  • num_process (int) — 指定分布式设置中的节点总数。这对于在分布式设置中(特别是非加性比较)计算比较非常有用。
  • process_id (int) — 在分布式设置中指定当前进程的ID(介于0和num_process-1之间)。这对于在分布式设置中(特别是非加性比较)计算比较非常有用。
  • seed (int, optional) — 如果指定,这将在运行 compute() 时临时设置numpy的随机种子。
  • experiment_id (str) — 特定的实验ID。当多个分布式评估共享同一个文件系统时使用。这对于在分布式设置中(特别是非加性比较)计算比较非常有用。
  • max_concurrent_cache_files (int) — 并发比较缓存文件的最大数量(默认为 10000)。
  • timeout (Union[int, float]) — 分布式设置同步的超时时间(秒)。

Comparison是所有比较的基类和通用API。

class evaluate.Measurement

< >

( config_name: typing.Optional[str] = None keep_in_memory: bool = False cache_dir: typing.Optional[str] = None num_process: int = 1 process_id: int = 0 seed: typing.Optional[int] = None experiment_id: typing.Optional[str] = None hash: str = None max_concurrent_cache_files: int = 10000 timeout: typing.Union[int, float] = 100 **kwargs )

参数

  • config_name (str) — 这用于定义特定于度量计算脚本的哈希值,并防止在修改度量加载脚本时覆盖度量数据。
  • keep_in_memory (bool) — 将所有预测和参考保留在内存中。在分布式设置中不可行。
  • cache_dir (str) — 存储临时预测/参考数据的目录路径。在分布式设置中,数据目录应位于共享文件系统上。
  • num_process (int) — 指定分布式设置中的节点总数。这对于在分布式设置中(特别是非加性度量)计算度量非常有用。
  • process_id (int) — 在分布式设置中指定当前进程的ID(介于0和num_process-1之间)。这对于在分布式设置中(特别是非加性度量)计算度量非常有用。
  • seed (int, optional) — 如果指定,这将在运行 compute() 时临时设置numpy的随机种子。
  • experiment_id (str) — 特定的实验ID。当多个分布式评估共享同一个文件系统时使用。这对于在分布式设置中(特别是非加性度量)计算度量非常有用。
  • max_concurrent_cache_files (int) — 并发度量缓存文件的最大数量(默认为 10000)。
  • timeout (Union[int, float]) — 分布式设置同步的超时时间(秒)。

Measurement是所有度量的基类和通用API。

CombinedEvaluations

combine 函数允许将多个 EvaluationModule 合并为一个单一的 CombinedEvaluations

evaluate.combine

< >

( evaluations force_prefix = False )

参数

  • evaluations (Union[list, dict]) — 评估模块的列表或字典。模块可以作为字符串传递,也可以是已加载的 EvaluationModule。如果传递的是字典,其键是使用的名称,值是模块。当每个模块返回的结果中存在名称重叠时,或者当 force_prefix=True 时,这些名称将用作前缀。
  • force_prefix (bool, optional, 默认为 False) — 如果为 True,模块的所有分数都将以其名称为前缀。如果传递的是字典,则使用键作为名称,否则使用模块的名称。

将多个指标、比较或度量组合成一个单一的 CombinedEvaluations 对象,可以像单个评估模块一样使用。

如果两个分数具有相同的名称,则它们将以其模块名称为前缀。如果两个模块具有相同的名称,请使用字典为它们指定不同的名称,否则将向其前缀附加一个整数ID。

示例

>>> import evaluate
>>> accuracy = evaluate.load("accuracy")
>>> f1 = evaluate.load("f1")
>>> clf_metrics = combine(["accuracy", "f1"])

class evaluate.CombinedEvaluations

< >

( evaluation_modules force_prefix = False )

add

< >

( prediction = None reference = None **kwargs )

参数

  • predictions (list/array/tensor, optional) — 预测值。
  • references (list/array/tensor, optional) — 参考值。

为每个评估模块的堆栈添加一个预测和参考。

示例

>>> import evaluate
>>> accuracy = evaluate.load("accuracy")
>>> f1 = evaluate.load("f1")
>>> clf_metrics = combine(["accuracy", "f1"])
>>> for ref, pred in zip([0,1,0,1], [1,0,0,1]):
...     clf_metrics.add(references=ref, predictions=pred)

add_batch

< >

( predictions = None references = None **kwargs )

参数

  • predictions (list/array/tensor, optional) — 预测值。
  • references (list/array/tensor, optional) — 参考值。

为每个评估模块的堆栈添加一批预测和参考。

示例

>>> import evaluate
>>> accuracy = evaluate.load("accuracy")
>>> f1 = evaluate.load("f1")
>>> clf_metrics = combine(["accuracy", "f1"])
>>> for refs, preds in zip([[0,1],[0,1]], [[1,0],[0,1]]):
...     clf_metrics.add(references=refs, predictions=preds)

compute

< >

( predictions = None references = None **kwargs ) dictNone

参数

  • predictions (list/array/tensor, optional) — 预测值。
  • references (list/array/tensor, optional) — 参考值。
  • **kwargs (optional) — 将转发给评估模块 compute() 方法的关键字参数(详情请见文档字符串)。

返回

dictNone

  • 如果在主进程(process_id == 0)上运行此评估模块,则返回包含结果的字典。
  • 如果评估模块不在主进程上运行(process_id != 0),则返回 None

计算每个评估模块。

不允许使用位置参数以防止错误。

示例

>>> import evaluate
>>> accuracy = evaluate.load("accuracy")
>>> f1 = evaluate.load("f1")
>>> clf_metrics = combine(["accuracy", "f1"])
>>> clf_metrics.compute(predictions=[0,1], references=[1,1])
{'accuracy': 0.5, 'f1': 0.6666666666666666}
< > 在 GitHub 上更新