TorchJD:在PyTorch中使用多个损失进行训练 [P]
摘要
TorchJD 是一个用于在 PyTorch 中训练具有多个损失的模型的库,实现了标量化和雅可比下降两种方法。它已被 PyTorch 生态系统接受,并致力于成为多损失训练的首选库。
大家好!我想分享 TorchJD 的一些最新进展,这些进展可能对机器学习社区有所帮助。在训练具有多个损失(多个任务、约束、辅助损失、正则化项等)的模型时,通常有两种选择:标量化:通过各种方式将这些损失组合成一个单一损失(例如,取平均值或使用可训练的权重组合);然后对其执行梯度下降。雅可比下降:计算损失向量的雅可比(即每个损失一个梯度),并将其聚合为一个更新向量,该向量将减少每个单独的损失(而不仅仅是平均损失)。有多种方法可以执行此聚合步骤。标量化方法通常内存消耗较低,但在某些情况下,目标之间存在巨大分歧,因此最好使用雅可比下降方法。无论如何,得益于我们出色的新贡献者,我们现在终于将文献中现有的大多数方法(来自两类)都实现到了我们的 TorchJD 库中,这样您只需更改几行代码即可尝试任何方法!最近,TorchJD 已被 PyTorch 生态系统接受,我们正在努力使其成为训练多损失模型的首选库。如果您想帮助构建项目的未来,请加入我们的 Discord(链接可在仓库的 readme 中找到)。新的想法、贡献、错误报告、实验以及任何形式的反馈都非常欢迎。我们有很多关于如何使这一切更加高效的想法,并且我们需要帮助来实现这些。如果您想支持我们,在 GitHub 上点星也会有很大帮助!
相似文章
TorchKM:面向GPU的核学习与模型选择库
TorchKM是一个开源的GPU加速核机器库(支持向量机、核逻辑回归等),采用scikit-learn风格的API。通过重用矩阵运算加速训练和模型选择,相比标准基线实现了显著的加速比。
GitHub - keon/jepa: 实现联合嵌入预测架构(JEPA)的极简版本
一个 GitHub 仓库,提供 JEPA 系列模型(I-JEPA、V-JEPA、V-JEPA 2、C-JEPA)的极简、独立 PyTorch 重新实现,供教育用途,包含教程和可视化工具。
TAGTorch: A PyTorch Library for Geometry, Topology, and Symmetry-Aware Machine Learning
TAGTorch is an open-source PyTorch library that unifies tools for topology, algebra, and geometry-aware machine learning, covering preprocessing, architectures, training techniques, and model analysis.
我为 PyTorch 训练循环构建调试器所学到的东西,以及它如何改变我对故障诊断的思考 [D]
作者分享了构建 NeuralDBG 的经验,这是一个针对 PyTorch 训练循环的开源调试器,通过监测逐层梯度范数的变化而非全局损失来检测局部故障,如梯度消失/爆炸。文中包含实用代码片段和社区问题。
以数据为中心的调试:面向训练神经网络的团队 [P]
WeightsLab 是一个开源、PyTorch 原生的工具,允许团队在训练过程中暂停、检查实时损失信号,并在数据问题(如标签错误和类别不平衡)影响模型性能之前发现它们。它专为处理图像、视频和 LiDAR 点云的计算机视觉工程师而设计。