PyTorch 中的高效指标收集:避免 TorchMetrics 的性能陷阱

指标收集是每个机器学习项目的重要组成部分,使我们能够跟踪模型性能并监控训练进度。理想情况下,指标的收集和计算不应给训练过程带来任何额外开销。然而,就像训练循环的其他组件一样,低效的指标计算可能会带来不必要的开销,增加训练步骤[…]PyTorch 中的高效指标收集:避免 TorchMetrics 的性能陷阱首先出现在 Towards Data Science 上。

来源:走向数据科学

指标收集是每个机器学习项目的重要组成部分,使我们能够跟踪模型性能并监控训练进度。理想情况下,指标的收集和计算应不会给训练过程带来任何额外开销。但是,就像训练循环的其他组件一样,低效的指标计算会带来不必要的开销,增加训练步骤时间并增加训练成本。

指标

这篇文章是我们关于 PyTorch 中性能分析和优化的系列文章的第七篇。该系列旨在强调性能分析和优化在机器学习开发中的关键作用。每篇文章都侧重于训练流程的不同阶段,展示了分析和提高资源利用率和运行时效率的实用工具和技术。

PyTorch 中的性能分析和优化 优化

在本期中,我们重点介绍指标收集。我们将演示指标收集的简单实现如何对运行时性能产生负面影响,并探索用于分析和优化的工具和技术。

为了实现我们的指标收集,我们将使用 TorchMetrics,这是一个流行的库,旨在简化和标准化 Pytorch 中的指标计算。 我们的目标是:

TorchMetrics Pytorch
    演示指标收集的简单实现所导致的运行时开销。使用 PyTorch Profiler 查明指标计算引入的性能瓶颈。演示优化技术以减少指标收集开销。
  • 演示指标收集的简单实现所导致的运行时开销。
  • 演示运行时开销
  • 使用 PyTorch Profiler 查明指标计算引入的性能瓶颈。
  • 使用 PyTorch Profiler
  • 演示优化技术以减少指标收集开销。
  • 演示优化技术 PyTorch 2.5.1 docker TorchMetrics 1.6.1

    玩具 Resnet 模型

    ResNet-18 PyTorch Profiler