torchmetrics: 一个用于分布式训练和评估的可扩展 PyTorch 指标库

torchmetrics: 一个用于分布式训练和评估的可扩展 PyTorch 指标库

它解决了什么问题

TorchMetrics 为 PyTorch 应用程序提供了一种标准化的方式来计算机器学习指标。它消除了通常在多个 batch 和分布式设备(例如多个 GPU 或节点)之间累积和同步指标所需的样板代码,从而确保结果的可应复现性和可扩展性。

工作原理

该库提供了两种主要的指标计算方式:

  • 基于 Module 的指标:这些指标的作用类似于 PyTorch 模块,通过维护内部状态来自动跟踪和累积跨 batch 的数据。它们会自动处理跨多个设备的同步,使其与 CPU、单 GPU 或多 GPU 设置兼容。
  • 基于 Functional 的指标:这些是简单的 Python 函数,以 tensor 作为输入并立即返回指标值,而不维护状态。

用户还可以通过继承 torchmetrics.Metric 并定义指标应如何更新其状态并计算最终结果来创建自定义指标。

适用人群

它专为需要跨不同领域(音频、文本、图像等)跟踪模型性能的 PyTorch 开发人员和机器学习工程师,以及从事大规模分布式训练的人员而设计。

亮点

  • 丰富的库:包含超过 100 种内置指标,涵盖分类、回归、分割、音频、文本和多模态数据。
  • 分布式支持:内置用于多设备训练的自动同步和累积。
  • 可定制性:通过继承基类实现自定义指标的简单 API。
  • 可视化:集成的绘图支持,用于可视化指标随时间变化的进度。

Sources