Releases: Lightning-AI/torchmetrics
More metrics
The latest release of TorchMetrics introduces several significant enhancements and new features that will greatly benefit users across various domains. This update includes the addition of new metrics and methods that enhance the library's functionality and usability.
One of the key additions is the NISQA
audio metric, which provides advanced capabilities for evaluating audio quality. In the classification domain, the new LogAUC
and NegativePredictiveValue
metrics offer improved tools for assessing model performance, particularly in imbalanced datasets. For regression tasks, the NormalizedRootMeanSquaredError
metric has been introduced, providing a normalized measure of prediction accuracy that is less sensitive to outliers.
In the field of image segmentation, the new Dice
metric enhances the evaluation of segmentation models by providing a robust measure of overlap between predicted and ground truth masks. Additionally, the merge_state
method has been added to the Metric
class, allowing for more efficient state management and aggregation across multiple devices or processes.
Furthermore, this release includes support for the propagation of the autograd graph in Distributed Data-Parallel (DDP) settings, enabling more efficient and scalable training of models across multiple GPUs. These enhancements collectively make TorchMetrics a more powerful and versatile tool for machine learning practitioners, enabling more accurate and efficient model evaluation across a wide range of applications.
[1.6.0] - 2024-11-12
Added
- Added audio metric
NISQA
(#2792) - Added classification metric
LogAUC
(#2377) - Added classification metric
NegativePredictiveValue
(#2433) - Added regression metric
NormalizedRootMeanSquaredError
(#2442) - Added segmentation metric
Dice
(#2725) - Added method
merge_state
toMetric
(#2786) - Added support for propagation of the autograd graph in DDP setting (#2754)
Changed
- Changed naming and input order arguments in
KLDivergence
(#2800)
Deprecated
- Deprecated Dice from classification metrics (#2725)
Removed
- Changed minimum supported Pytorch version to 2.0 (#2671)
- Dropped support for Python 3.8 (#2827)
- Removed
num_outputs
inR2Score
(#2800)
Fixed
- Fixed segmentation
Dice
+GeneralizedDice
for 2d index tensors (#2832) - Fixed mixed results of
rouge_score
withaccumulate='best'
(#2830)
Key Contributors
@Borda, @cw-tan, @philgzl, @rittik9, @SkafteNicki
New Contributors since 1.5.0
- @bfolie made their first contribution in #2793
- @StalkerShurik made their first contribution in #2811
- @philgzl made their first contribution in #2792
- @cw-tan made their first contribution in #2754
Full Changelog: v1.5.0...v1.6.0
Minor patch release
[1.5.2] - 2024-11-07
Changed
- Re-adding
numpy
2+ support (#2804)
Fixed
- Fixed iou scores in detection for either empty predictions/targets leading to wrong scores (#2805)
- Fixed
MetricCollection
compatibility withtorch.jit.script
(#2813) - Fixed assert in PIT (#2811)
- Patched
np.Inf
fornumpy
2.0+ (#2826)
Key Contributors
@adamjstewart, @Borda, @SkafteNicki, @StalkerShurik, @yurithefury
If we forgot someone due to not matching commit email with GitHub account, let us know :]
Full Changelog: v1.5.1...v1.5.2
Minor compatibility patch
[1.5.1] - 2024-10-22
Fixed
- Changing
_modules
dict type in Pytorch 2.5 preventing to fail collections metrics (#2793)
Key Contributors
If we forgot someone due to not matching commit email with GitHub account, let us know :]
Full Changelog: v1.5.0...v1.5.1
Shape metric
Shape metrics are quantitative methods used to assess and compare the geometric properties of objects, often in datasets that represent shapes. One such metric is the Procrustes Disparity, which measures the sum of the squared differences between two datasets after applying a Procrustes transformation. This transformation involves scaling, rotating, and translating the datasets to achieve optimal alignment. The Procrustes Disparity is particularly useful when comparing datasets that are similar in structure but not perfectly aligned, allowing for more meaningful comparison by minimizing differences due to orientation or size.
[1.5.0] - 2024-10-18
Added
- Added segmentation metric
HausdorffDistance
(#2122) - Added audio metric
DNSMOS
(#2525) - Added shape metric
ProcrustesDistance
(#2723) - Added
MetricInputTransformer
wrapper (#2392) - Added
input_format
argument to segmentation metrics (#2572) - Added
multi-output
support for MAE metric (#2605) - Added
truncation
argument toBERTScore
(#2776)
Changed
- Tracker higher is better integration (#2649)
- Updated
InfoLM
class to dynamically sethigher_is_better
(#2674)
Deprecated
- Deprecated
num_outputs
inR2Score
(#2705)
Fixed
- Fixed corner case in
IoU
metric for single empty prediction tensors (#2780) - Fixed
PSNR
calculation for integer type input images (#2788)
Key Contributors
@Astraightrain, @grahamannett, @lgienapp, @matsumotosan, @quancs, @SkafteNicki
New Contributors since 1.4.0
- @kalekundert made their first contribution in #2543
- @lgienapp made their first contribution in #2392
- @sweber1 made their first contribution in #2634
- @gxy-gxy made their first contribution in #2347
- @Astraightrain made their first contribution in #2605
- @ndrwrbgs made their first contribution in #2640
- @grahamannett made their first contribution in #2674
- @petertheprocess made their first contribution in #2721
- @rittik9 made their first contribution in #2726
- @vkinakh made their first contribution in #2698
- @likawind made their first contribution in #2732
- @veera-puthiran-14082 made their first contribution in #2753
- @GPPassos made their first contribution in #2727
Full Changelog: v1.4.0...v1.5.0
Minor patch release
[1.4.3] - 2024-10-10
Fixed
- Fixed for Pearson changes inputs (#2765)
- Fixed bug in
PESQ
metric whereNoUtterancesError
prevented calculating on a batch of data (#2753) - Fixed corner case in
MatthewsCorrCoef
(#2743)
Key Contributors
@Borda, @SkafteNicki, @veera-puthiran-14082
If we forgot someone due to not matching commit email with GitHub account, let us know :]
Full Changelog: v1.4.2...v1.4.3
Minor patch release
[1.4.2] - 2022-09-12
Added
- Re-adding
Chrf
implementation (#2701)
Fixed
- Fixed wrong aggregation in
segmentation.MeanIoU
(#2698) - Fixed handling zero division error in binary IoU (Jaccard index) calculation (#2726)
- Corrected the padding related calculation errors in SSIM (#2721)
- Fixed compatibility of audio domain with new
scipy
(#2733) - Fixed how
prefix
/postfix
works inMultitaskWrapper
(#2722) - Fixed flakiness in tests related to
torch.unique
withdim=None
(#2650)
Key Contributors
@Borda, @petertheprocess, @rittik9, @SkafteNicki, @vkinakh
If we forgot someone due to not matching commit email with GitHub account, let us know :]
Full Changelog: v1.4.1...v1.4.2
Minor patch release
[1.4.1] - 2024-08-02
Changed
- Calculate the text color of
ConfusionMatrix
plot based on luminance (#2590) - Updated
_safe_divide
to allowAccuracy
to run on the GPU (#2640) - Improved better error messages for intersection detection metrics for wrong user input (#2577)
Removed
- Dropped
Chrf
implementation due to licensing issues with the upstream package (#2668)
Fixed
- Fixed bug in
MetricCollection
when using compute groups andcompute
is called more than once (#2571) - Fixed class order of
panoptic_quality(..., return_per_class=True)
output (#2548) - Fixed
BootstrapWrapper
not being reset correctly (#2574) - Fixed integration between
ClasswiseWrapper
andMetricCollection
with custom_filter_kwargs
method (#2575) - Fixed BertScore calculation: pred target misalignment (#2347)
- Fixed
_cumsum
helper function in multi-gpu (#2636) - Fixed bug in
MeanAveragePrecision.coco_to_tm
(#2588) - Fixed missed f-strings in exceptions/warnings (#2667)
Key Contributors
@Borda, @gxy-gxy, @i-aki-y, @ndrwrbgs, @relativityhd, @SkafteNicki
If we forgot someone due to not matching commit email with GitHub account, let us know :]
Full Changelog: v1.4.0...v1.4.1
Minor dependency correction
Full Changelog: v1.4.0...v1.4.0.post0
Metrics for segmentation
In Torchmetrics v1.4, we are happy to introduce a new domain of metrics to the library: segmentation metrics. Segmentation metrics are used to evaluate how well segmentation algorithms are performing, e.g., algorithms that take in an image and pixel-by-pixel decide what kind of object it is. These kind of algorithms are necessary in applications such as self driven cars. Segmentations are closely related to classification metrics, but for now, in Torchmetrics, expect the input to be formatted differently; see the documentation for more info. For now, MeanIoU
and GeneralizedDiceScore
have been added to the subpackage, with many more to follow in upcoming releases of Torchmetrics. We are happy to receive any feedback on metrics to add in the future or the user interface for the new segmentation metrics.
Torchmetrics v1.3 adds new metrics to the classification and image subpackage and has multiple bug fixes and other quality-of-life improvements. We refer to the changelog for the complete list of changes.
[1.4.0] - 2024-05-03
Added
- Added
SensitivityAtSpecificity
metric to classification subpackage (#2217) - Added
QualityWithNoReference
metric to image subpackage (#2288) - Added a new segmentation metric:
- Added support for calculating segmentation quality and recognition quality in
PanopticQuality
metric (#2381) - Added
pretty-errors
for improving error prints (#2431) - Added support for
torch.float
weighted networks for FID and KID calculations (#2483) - Added
zero_division
argument to selected classification metrics (#2198)
Changed
- Made
__getattr__
and__setattr__
ofClasswiseWrapper
more general (#2424)
Fixed
- Fix getitem for metric collection when prefix/postfix is set (#2430)
- Fixed axis names with Precision-Recall curve (#2462)
- Fixed list synchronization with partly empty lists (#2468)
- Fixed memory leak in metrics using list states (#2492)
- Fixed bug in computation of
ERGAS
metric (#2498) - Fixed
BootStrapper
wrapper not working withkwargs
provided argument (#2503) - Fixed warnings being suppressed in
MeanAveragePrecision
when requested (#2501) - Fixed corner-case in
binary_average_precision
when only negative samples are provided (#2507)
Key Contributors
@baskrahmer, @Borda, @ChristophReich1996, @daniel-code, @furkan-celik, @i-aki-y, @jlcsilva, @NielsRogge, @oguz-hanoglu, @SkafteNicki, @ywchan2005
New Contributors since 1.3.0
- @eamonn-zh made their first contribution in #2345
- @nsmlzl made their first contribution in #2346
- @fschlatt made their first contribution in #2364
- @JonasVerbickas made their first contribution in #2358
- @AtomicVar made their first contribution in #2391
- @JDongian made their first contribution in #2400
- @daniel-code made their first contribution in #2390
- @baskrahmer made their first contribution in #2457
- @ChristophReich1996 made their first contribution in #2381
- @lukazso made their first contribution in #2491
- @S-aiueo32 made their first contribution in #2499
- @dominicgkerr made their first contribution in #2493
- @Shoumik-Gandre made their first contribution in #2482
- @randombenj made their first contribution in #2511
- @NielsRogge made their first contribution in #1236
- @i-aki-y made their first contribution in #2198
If we forgot someone due to not matching commit email with GitHub account, let us know :]
Full Changelog: v1.3.0...v1.4.0
Minor patch release
[1.3.2] - 2024-03-18
Fixed
- Fixed negative variance estimates in certain image metrics (#2378)
- Fixed dtype being changed by deepspeed for certain regression metrics (#2379)
- Fixed plotting of metric collection when prefix/postfix is set (#2429)
- Fixed bug when
top_k>1
andaverage="macro"
for classification metrics (#2423) - Fixed case where label prediction tensors in classification metrics were not validated correctly (#2427)
- Fixed how auc scores are calculated in
PrecisionRecallCurve.plot
methods (#2437)
Full Changelog: v1.3.1...v1.3.2
Key Contributors
If we forgot someone due to not matching commit email with GitHub account, let us know :]