# Acknowledgements ### Contributors Thanks to the contributors who made pull requests! | Contributor | Highlights | | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [domenicoMuscill0](https://github.com/domenicoMuscill0) | - [ManifoldLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/manifold_loss/#manifoldloss)
- [P2SGradLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/p2s_grad_loss/#p2sgradloss)
- [HistogramLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/histogram_loss/#histogramloss)
- [DynamicSoftMarginLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/dynamic_soft_margin_loss/#dynamicsoftmarginloss)
- [RankedListLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/ranked_list_loss/#rankedlistloss)
- Faiss GPU search without CPU transfers | | [mlopezantequera](https://github.com/mlopezantequera) | - Made the testers, since replaced by the [evaluation recipe](https://kevinmusgrave.github.io/pytorch-metric-learning/recipes/evaluation/), work on any combination of query and reference sets
- Made [AccuracyCalculator](https://kevinmusgrave.github.io/pytorch-metric-learning/accuracy_calculation/) work with arbitrary label comparisons | | [cwkeam](https://github.com/cwkeam) | - [SelfSupervisedLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/self_supervised_loss/#selfsupervisedloss)
- [VICRegLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/vicreg_loss/#vicregloss)
- Added mean reciprocal rank accuracy to [AccuracyCalculator](https://kevinmusgrave.github.io/pytorch-metric-learning/accuracy_calculation/)
- The BaseLossWrapper abstraction (version 2) | | [ir2718](https://github.com/ir2718) | - [ThresholdConsistentMarginLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/threshold_consistent_margin_loss/#thresholdconsistentmarginloss)
- [SmoothAPLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/smooth_ap_loss/#smoothaploss)
- The Datasets module, removed in the next major release | | [marijnl](https://github.com/marijnl) | - [BatchEasyHardMiner](https://kevinmusgrave.github.io/pytorch-metric-learning/miners/#batcheasyhardminer)
- The TwoStreamMetricLoss trainer (version 2)
- GlobalTwoStreamEmbeddingSpaceTester, preserved as [two-stream evaluation](https://kevinmusgrave.github.io/pytorch-metric-learning/recipes/evaluation/#two-stream-evaluation)
- Historical example using trainers.TwoStreamMetricLoss | | [chingisooinar](https://github.com/chingisooinar) | - [SubCenterArcFaceLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/subcenter_arcface_loss/#subcenterarcfaceloss)
- [DynamicArcFaceLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/dynamic_arcface_loss/#dynamicarcfaceloss) | | [elias-ramzi](https://github.com/elias-ramzi) | [HierarchicalSampler](https://kevinmusgrave.github.io/pytorch-metric-learning/samplers/#hierarchicalsampler) | | [fjsj](https://github.com/fjsj) | [SupConLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/supcon_loss/#supconloss) | | [AlenUbuntu](https://github.com/AlenUbuntu) | [CircleLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/circle_loss/#circleloss) | | [interestingzhuo](https://github.com/interestingzhuo) | [PNPLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/pnp_loss/#pnploss) | | [wconnell](https://github.com/wconnell) | Learning a scRNAseq Metric Embedding | | [mkmenta](https://github.com/mkmenta) | Improved `get_all_triplets_indices` (fixed the `INT_MAX` error) | | [AlexSchuy](https://github.com/AlexSchuy) | Optimized random triplet sampling (`utils.indexing.get_random_triplet_indices`) | | [JohnGiorgi](https://github.com/JohnGiorgi) | `all_gather` in the [distributed wrappers](https://kevinmusgrave.github.io/pytorch-metric-learning/distributed) | | [Hummer12007](https://github.com/Hummer12007) | The trainer key checker (version 2) | | [vltanh](https://github.com/vltanh) | Dataset support in `InferenceModel.train_indexer` (version 2) | | [btseytlin](https://github.com/btseytlin) | `InferenceModel.get_nearest_neighbors` (version 2) | | [mlw214](https://github.com/mlw214) | Per-class accuracy in [AccuracyCalculator](https://kevinmusgrave.github.io/pytorch-metric-learning/accuracy_calculation/) | | [layumi](https://github.com/layumi) | [InstanceLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/instance_loss/#instanceloss) | | [NoTody](https://github.com/NoTody) | Helped add `ref_emb` and `ref_labels` to the distributed wrappers. | | [ElisonSherton](https://github.com/ElisonSherton) | Fixed an edge case in ArcFaceLoss. | | [stompsjo](https://github.com/stompsjo) | Improved documentation for NTXentLoss. | | [Puzer](https://github.com/Puzer) | Bug fix for PNPLoss. | | [elisim](https://github.com/elisim) | Developer improvements to DistributedLossWrapper. | | [lucamarini22](https://github.com/lucamarini22) | [#743](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/743) | | [marcpaga](https://github.com/marcpaga) | Fixed options forwarding in SubCenterArcFaceLoss ([#746](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/746)) | | [GaetanLepage](https://github.com/GaetanLepage) | [#668](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/668) | | [z1w](https://github.com/z1w) | Fixed DistanceWeightedMiner weight underflow ([#278](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/278)) | | [thinline72](https://github.com/thinline72) | [#233](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/233) | | [tpanum](https://github.com/tpanum) | [#230](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/230) | | [fralik](https://github.com/fralik) | Moved the package to the `src` layout ([#36](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/36)) | | [joaqo](https://github.com/joaqo) | Fixed inference parameter overrides ([#286](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/286)) | | [JoOkuma](https://github.com/JoOkuma) | Fixed an MPerClassSampler bug ([#13](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/13)) | | [gkouros](https://github.com/gkouros) | [#322](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/322) | | [yutanakamura-tky](https://github.com/yutanakamura-tky) | Embedding type checks in inference ([#332](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/332)) | | [KinglittleQ](https://github.com/KinglittleQ) | [#364](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/364) | | [martin0258](https://github.com/martin0258) | [#522](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/522) | | [michaeldeyzel](https://github.com/michaeldeyzel) | Fixed NCALoss ([#514](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/514)) | | [HSinger04](https://github.com/HSinger04) | Logging preset fixes ([#592](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/592)) | | [rheum](https://github.com/rheum) | Sampler documentation ([#615](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/615)) | | [akshitkhokhani](https://github.com/akshitkhokhani) | Fixed large integer labels colliding in [AccuracyCalculator](https://kevinmusgrave.github.io/pytorch-metric-learning/accuracy_calculation/) ([#763](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/763)) | | [QibinLiang](https://github.com/QibinLiang) | [MultiSupConLoss](https://kevinmusgrave.github.io/pytorch-metric-learning/losses/multi_supcon_loss/#multisupconloss) | | [bot66](https://github.com/bot66) | Documentation fix ([#644](https://github.com/KevinMusgrave/pytorch-metric-learning/pull/644)) | ### Facebook AI Thank you to [Ser-Nam Lim](https://sites.google.com/site/sernam) at [Facebook AI](https://ai.facebook.com/), and my research advisor, [Professor Serge Belongie](https://www.belongielab.org/). This project began during my internship at Facebook AI where I received valuable feedback from Ser-Nam, and his team of computer vision and machine learning engineers and research scientists. In particular, thanks to [Ashish Shah](https://www.linkedin.com/in/ashish217/) and [Austin Reiter](https://www.linkedin.com/in/austin-reiter-3962aa7/) for reviewing my code during its early stages of development. ### Open-source repos This library contains code adapted from several open-source repositories. [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md) lists each one, maps it to the files it informed, and reproduces its license notice. ### Logo Thanks to [Jeff Musgrave](https://www.designgenius.ca/) for designing the logo.