v0.12.0 #715
ValerianRey
announced in
Announcements
v0.12.0
#715
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
🥥 Scalarization, FairGrad
🌟 We're very happy to announce that TorchJD has just been accepted to the PyTorch ecosystem!
We thank all contributors for making this possible (most recent contributors listed first):
This release introduces a new package
torchjd.scalarization, with simple baselines to combine losses into a single scalar, to compare against Jacobian-based methods. Thanks a lot to @ppraneth for making this happen!The long-term plan is to add many non-trivial scalarization methods from the literature, so that TorchJD can be used whenever you have multiple losses, even if you don't need Jacobian-based methods. We'd be very happy to welcome new contributors to help us develop them. See this issue for more information, and feel free to join our Discord server to start discussing with us!
This release also introduces FairGrad, makes even more dependencies optional (now
torchjdonly depends ontorchby default), and removes GeneralizedWeightings. More info about this in the changelog.Changelog
Added
torchjd.scalarizationpackage providing the abstractScalarizerbase class andthe concrete implementations
Constant,Mean,Random, andSum. These baselines simplycombine losses into a scalar that can be optimized with a standard backward pass, making them
useful for comparison with JD-based methods.
FairGradandFairGradWeightingfrom Fair Resource Allocation in Multi-TaskLearning.
Changed
numpy,quadprogandqpsolversfrom the main dependencies oftorchjd,(which now only has
torchas its main dependency). This makes the base version oftorchjd(installed with
pip install torchjd) much lighter, but it means that users ofUPGradandDualProjnow have to install the new optional dependency groupquadprog_projectorexplicitly(with e.g.
pip install "torchjd[quadprog_projector]").Engine.compute_gramianmethod now always returns a square matrix of shape
[m, m], wheremis the total number ofelements of the
outputtensor (treating all dimensions uniformly). Previously, an output ofshape
[m1, m2]would return a 4D generalized Gramian of shape[m1, m2, m2, m1]; it nowreturns a
[m1 * m2, m1 * m2]matrix.This also removes
GeneralizedWeightingandFlattening.To update, replace
Flattening(weighting)with a standardWeightingand reshape the resultingweight vector yourself:
This discussion was created from the release v0.12.0.
Beta Was this translation helpful? Give feedback.
All reactions