All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Note: we move fast, but still we preserve 0.1 version (one feature release) back compatibility.
-
Added support in
nDCG
metric for target with values larger than 1 (#343) -
Added Word error rate (WER) (#52)
-
Added Symmetric Mean Absolute Percentage error (SMAPE) (#375)
-
Allowed passing labels in (n_samples, n_classes) to
AveragePrecision
(#386)
-
Moved
psnr
andssim
fromfunctional.regression.*
tofunctional.image.*
(#382) -
Moved
image_gradient
fromfunctional.image_gradients
tofunctional.image.gradients
(#381) -
Moved
R2Score
fromregression.r2score
toregression.r2
(#371)
-
Rename
r2score
>>r2_score
andkldivergence
>>kl_divergence
infunctional
(#371) -
Moved
bleu_score
fromfunctional.nlp
tofunctional.text.bleu
(#360)
-
Removed restriction that
threshold
has to be in (0,1) range to support logit input ( #351 #401) -
Removed restriction that
preds
could not be bigger thannum_classes
to support logit input (#357) -
Removed module
regression.psnr
andregression.ssim
(#382): -
Removed (#379):
- function
functional.mean_relative_error
num_thresholds
argument inBinnedPrecisionRecallCurve
- function
- Fixed
weighted
,multi-class
AUROC computation to allow for 0 observations of some class, as contribution to final AUROC is 0 (#348)
- Fixed DDP by
is_sync
logic toMetric
(#339)
- Added Cosine Similarity Metric (#305)
- Added Specificity metric (#210)
- Added
add_metrics
method toMetricCollection
for adding additional metrics after initialization (#221) - Added pre-gather reduction in the case of
dist_reduce_fx="cat"
to reduce communication cost (#217) - Added better error message for
AUROC
whennum_classes
is not provided for multiclass input (#244) - Added support for unnormalized scores (e.g. logits) in
Accuracy
,Precision
,Recall
,FBeta
,F1
,StatScore
,Hamming
,ConfusionMatrix
metrics (#200) - Added
MeanAbsolutePercentageError(MAPE)
metric. (#248) - Added
squared
argument toMeanSquaredError
for computingRMSE
(#249) - Added FID metric (#213)
- Added
is_differentiable
property toConfusionMatrix
,F1
,FBeta
,Hamming
,Hinge
,IOU
,MatthewsCorrcoef
,Precision
,Recall
,PrecisionRecallCurve
,ROC
,StatScores
(#253) - Added audio metrics: SNR, SI_SDR, SI_SNR (#292)
- Added Inception Score metric to image module (#299)
- Added KID metric to image module (#301)
- Added
sync
andsync_context
methods for manually controlling when metric states are synced (#302) - Added
KLDivergence
metric (#247)
- Forward cache is reset when
reset
method is called (#260) - Improved per-class metric handling for imbalanced datasets for
precision
,recall
,precision_recall
,fbeta
,f1
,accuracy
, andspecificity
(#204) - Decorated
torch.jit.unused
toMetricCollection
forward (#307) - Renamed
thresholds
argument to binned metrics for manually controlling the thresholds (#322) - Extend typing (#324, #326, #327)
- Deprecated
functional.mean_relative_error
(#248) - Deprecated
num_thresholds
argument inBinnedPrecisionRecallCurve
(#322)
- Removed argument
is_multiclass
(#319)
- AUC can also support more dimensional inputs when all but one dimension are of size 1 (#242)
- Fixed
dtype
of modular metrics after reset has been called (#243) - Fixed calculation in
matthews_corrcoef
to correctly match formula (#321)
- Added
is_differentiable
property:
MetricCollection
should return metrics with prefix onitems()
,keys()
(#209)- Calling
compute
beforeupdate
will now give warning (#164)
- Removed
numpy
as direct dependency (#212)
- Fixed auc calculation and add tests (#197)
- Fixed loading persisted metric states using
load_state_dict()
(#202) - Fixed
PSNR
not working withDDP
(#214) - Fixed metric calculation with unequal batch sizes (#220)
- Fixed metric concatenation for list states for zero-dim input (#229)
- Fixed numerical instability in
AUROC
metric for large input (#230)
- Added
BootStrapper
to easily calculate confidence intervals for metrics (#101) - Added Binned metrics (#128)
- Added metrics for Information Retrieval ((PL^5032)):
- Added other metrics:
- Added
average='micro'
as an option in AUROC for multilabel problems (#110) - Added multilabel support to
ROC
metric (#114) - Added testing for
half
precision (#77, #135 ) - Added
AverageMeter
for ad-hoc averages of values (#138) - Added
prefix
argument toMetricCollection
(#70) - Added
__getitem__
as metric arithmetic operation (#142) - Added property
is_differentiable
to metrics and test for differentiability (#154) - Added support for
average
,ignore_index
andmdmc_average
inAccuracy
metric (#166) - Added
postfix
arg toMetricCollection
(#188)
- Changed
ExplainedVariance
from storing all preds/targets to tracking 5 statistics (#68) - Changed behaviour of
confusionmatrix
for multilabel data to better matchmultilabel_confusion_matrix
from sklearn (#134) - Updated FBeta arguments (#111)
- Changed
reset
method to usedetach.clone()
instead ofdeepcopy
when resetting to default (#163) - Metrics passed as dict to
MetricCollection
will now always be in deterministic order (#173) - Allowed
MetricCollection
pass metrics as arguments (#176)
- Rename argument
is_multiclass
->multiclass
(#162)
- Prune remaining deprecated (#92)
- Fixed when
_stable_1d_sort
to work whenn>=N
(PL^6177) - Fixed
_computed
attribute not being correctly reset (#147) - Fixed to Blau score (#165)
- Fixed backwards compatibility for logging with older version of pytorch-lightning (#182)
- Decoupled PL dependency (#13)
- Refactored functional - mimic the module-like structure: classification, regression, etc. (#16)
- Refactored utilities - split to topics/submodules (#14)
- Refactored
MetricCollection
(#19)
- Added
Accuracy
metric now generalizes to Top-k accuracy for (multi-dimensional) multi-class inputs using thetop_k
parameter (PL^4838) - Added
Accuracy
metric now enables the computation of subset accuracy for multi-label or multi-dimensional multi-class inputs with thesubset_accuracy
parameter (PL^4838) - Added
HammingDistance
metric to compute the hamming distance (loss) (PL^4838) - Added
StatScores
metric to compute the number of true positives, false positives, true negatives and false negatives (PL^4839) - Added
R2Score
metric (PL^5241) - Added
MetricCollection
(PL^4318) - Added
.clone()
method to metrics (PL^4318) - Added
IoU
class interface (PL^4704) - The
Recall
andPrecision
metrics (and their functional counterpartsrecall
andprecision
) can now be generalized to Recall@K and Precision@K with the use oftop_k
parameter (PL^4842) - Added compositional metrics (PL^5464)
- Added AUC/AUROC class interface (PL^5479)
- Added
QuantizationAwareTraining
callback (PL^5706) - Added
ConfusionMatrix
class interface (PL^4348) - Added multiclass AUROC metric (PL^4236)
- Added
PrecisionRecallCurve, ROC, AveragePrecision
class metric (PL^4549) - Classification metrics overhaul (PL^4837)
- Added
F1
class metric (PL^4656) - Added metrics aggregation in Horovod and fixed early stopping (PL^3775)
- Added
persistent(mode)
method to metrics, to enable and disable metric states being added tostate_dict
(PL^4482) - Added unification of regression metrics (PL^4166)
- Added persistent flag to
Metric.add_state
(PL^4195) - Added classification metrics (PL^4043)
- Added new Metrics API. (PL^3868, PL^3921)
- Added EMB similarity (PL^3349)
- Added SSIM metrics (PL^2671)
- Added BLEU metrics (PL^2535)