From 62d3747654286859a45ec6747b93f4d1fa192282 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Val=C3=A9rian=20Rey?= Date: Thu, 8 Oct 2026 13:12:29 +0200 Subject: [PATCH 1/2] chore: Prepare release v0.18.0 Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 6 ++++++ README.md | 1 + pyproject.toml | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fe25e195..c10a5782 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ changelog does not include internal changes that do not affect the user. ## [Unreleased] +## [0.18.0] - 2026-10-08 + ### Added - Added `PCD` and `PCDWeighting` from [Not All Objectives Are Born Equal: Priority-Constrained @@ -38,6 +40,10 @@ changelog does not include internal changes that do not affect the user. (e.g. a model with some parameters in `float32` and others in `float64`). The aggregated gradient was computed in the promoted dtype and could not be assigned to the `.grad` field of the tensors of lower precision. Each tensor now gets a `.grad` of its own dtype, like with `torch.autograd`. +- Fixed `QuadprogProjector` accepting negative values of `norm_eps` and `reg_eps` in its + constructor. It now raises a `ValueError`, like when setting these attributes after construction. +- Fixed the string representation of `CAGrad` dropping significant trailing zeros of `c` (e.g. + `str(CAGrad(c=10))` was `"CAGrad1"` instead of `"CAGrad10"`). ## [0.17.1] - 2026-09-23 diff --git a/README.md b/README.md index b348d16c..40468f77 100644 --- a/README.md +++ b/README.md @@ -192,6 +192,7 @@ TorchJD provides many existing aggregators from the literature, listed in the fo | [MGDA](https://torchjd.org/stable/docs/aggregation/mgda#torchjd.aggregation.MGDA) | [MGDAWeighting](https://torchjd.org/stable/docs/aggregation/mgda#torchjd.aggregation.MGDAWeighting) | [Multiple-gradient descent algorithm (MGDA) for multiobjective optimization](https://comptes-rendus.academie-sciences.fr/mathematique/articles/10.1016/j.crma.2012.03.014/) | | - | [MoDoWeighting](https://torchjd.org/stable/docs/aggregation/modo/#torchjd.aggregation.MoDoWeighting) | [Three-Way Trade-Off in Multi-Objective Learning: Optimization, Generalization and Conflict-Avoidance](https://www.jmlr.org/papers/volume25/23-1287/23-1287.pdf) | | [NashMTL](https://torchjd.org/stable/docs/aggregation/nash_mtl#torchjd.aggregation.NashMTL) | - | [Multi-Task Learning as a Bargaining Game](https://arxiv.org/pdf/2202.01017) | +| [PCD](https://torchjd.org/stable/docs/aggregation/pcd#torchjd.aggregation.PCD) | [PCDWeighting](https://torchjd.org/stable/docs/aggregation/pcd#torchjd.aggregation.PCDWeighting) | [Not All Objectives Are Born Equal: Priority-Constrained Descent for Hierarchical Multi-Objective Optimization](https://openreview.net/forum?id=HT01yGHLEt) | | [PCGrad](https://torchjd.org/stable/docs/aggregation/pcgrad#torchjd.aggregation.PCGrad) | [PCGradWeighting](https://torchjd.org/stable/docs/aggregation/pcgrad#torchjd.aggregation.PCGradWeighting) | [Gradient Surgery for Multi-Task Learning](https://arxiv.org/pdf/2001.06782) | | [Random](https://torchjd.org/stable/docs/aggregation/random#torchjd.aggregation.Random) | [RandomWeighting](https://torchjd.org/stable/docs/aggregation/random#torchjd.aggregation.RandomWeighting) | [Reasonable Effectiveness of Random Weighting: A Litmus Test for Multi-Task Learning](https://arxiv.org/pdf/2111.10603) | | - | [SDMGradWeighting](https://torchjd.org/stable/docs/aggregation/sdmgrad#torchjd.aggregation.SDMGradWeighting) | [Direction-oriented Multi-objective Learning: Simple and Provable Stochastic Algorithms](https://arxiv.org/pdf/2305.18409) | diff --git a/pyproject.toml b/pyproject.toml index 87ca96d1..872397bb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "torchjd" -version = "0.17.1" +version = "0.18.0" description = "Library for Jacobian Descent with PyTorch." readme = "README.md" authors = [ From 71dfa13c464915d96f7d1e116e799d57b5f013dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Val=C3=A9rian=20Rey?= Date: Thu, 8 Oct 2026 13:20:24 +0200 Subject: [PATCH 2/2] Remove changelog entries for minor fixes Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c10a5782..dfb2616e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -40,10 +40,6 @@ changelog does not include internal changes that do not affect the user. (e.g. a model with some parameters in `float32` and others in `float64`). The aggregated gradient was computed in the promoted dtype and could not be assigned to the `.grad` field of the tensors of lower precision. Each tensor now gets a `.grad` of its own dtype, like with `torch.autograd`. -- Fixed `QuadprogProjector` accepting negative values of `norm_eps` and `reg_eps` in its - constructor. It now raises a `ValueError`, like when setting these attributes after construction. -- Fixed the string representation of `CAGrad` dropping significant trailing zeros of `c` (e.g. - `str(CAGrad(c=10))` was `"CAGrad1"` instead of `"CAGrad10"`). ## [0.17.1] - 2026-09-23