v0.11.0 #686
ValerianRey
announced in
Announcements
v0.11.0
#686
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.
-
🍓 CR-MOGM, DualConeProjector, setters
This PR introduces
CRMOGMWeighting, a wrapper that can be applied to any weighting to stabilize its weights by computing the exponential moving average of the weights returned by the wrapped weighting. This was originally introduced in On the Convergence of Stochastic Multi-Objective Gradient Manipulation and Beyond. Many thanks to @KhusPatel4450 for contributing this!The interface is also improved, with:
DualConeProjectorand its concreteQuadprogProjectorimplementation, to do the projection of the gradients onto the dual cone, as required inUPGrad, andDualProj. We plan to add more projectors in the future. Many thanks to @PierreQuinton for this!Matrix,PSDMatrix,WeightedAggregatorandGramianWeightedAggregator.Contributors
Changelog
Changed
norm_eps,rep_epsandsolverparameters from the__init__ofUPGrad,UPGradWeighting,DualProjandDualProjWeightingin favor of aprojectorparameter of type
DualConeProjector. To update:norm_eps,reg_epsandsolver, you don't have to change anything andyou will get the same results.
CAGrad,CAGradWeighting, andNashMTLare now always importable fromtorchjd.aggregation,even when their optional dependencies are not installed. Attempting to instantiate them without the
required dependencies now raises an
ImportErrorwith installation instructions, instead ofraising an
ImportErrorat import time.GradDrop, ConFIG, CAGrad, NashMTL) no longer build a computation graph when called on tensors
that require gradients. Their forward pass is now wrapped in
torch.no_grad(), so attempting todifferentiate through them is not possible anymore (while before, it raised a
NonDifferentiableError).Added
CRMOGMWeightingfrom On the Convergence of Stochastic Multi-Objective GradientManipulation and Beyond
(NeurIPS 2022). It wraps an existing
Weightingand stabilises its weights with an exponentialmoving average across calls.
DualConeProjectorabstract base class and its concreteQuadprogProjectorimplementation, to do the projection of the gradients onto the dual cone, asrequired in
UPGrad, andDualProj. These classes can be found intorchjd.linalg.WeightedAggregatorandGramianWeightedAggregatorpublic. These abstract base classes arenow importable from
torchjd.aggregationand documented. They can be extended to easily implementcustom
Aggregators.MatrixandPSDMatrixpublic. These type annotation classes are now importable fromtorchjd.linalgand documented. Users can now subclassWeighting[Matrix]orWeighting[PSDMatrix]to implement customWeightings.that they can be changed after initialization. This includes:
pref_vector,norm_epsandreg_epsinUPGrad,UPGradWeighting,DualProjandDualProjWeighting;pref_vectorandscale_modeinAlignedMTLandAlignedMTLWeighting;candnorm_epsinCAGradandCAGradWeighting;pref_vectorinConFIG;leakinGradDrop,n_byzantineandn_selectedinKrumandKrumWeighting;epsilonandmax_itersinMGDAandMGDAWeighting;n_tasks,max_norm,update_weights_everyandoptim_niterinNashMTL;trim_numberinTrimmedMean. Setters validate their inputs matching the existing constructorchecks. Note that setters for
GradVacandGradVacWeightingalready existed.This discussion was created from the release v0.11.0.
Beta Was this translation helpful? Give feedback.
All reactions